Làm cách nào để thay đổi gamma / độ sáng của Xorg?


15

Tôi đang cố gắng chơi một trò chơi (Deus Ex) mà tôi phải sửa đổi độ sáng vì nó rất tối trong môi trường xung quanh. Trò chơi có cài đặt "Độ sáng", nhưng gần đây nó không hoạt động. Tôi đã cố gắng tìm ra cách thay đổi nó và tìm ra xgammamột hiệu ứng tương tự xgamma -gamma 5. Nhưng bất cứ khi nào tôi thay đổi nó, các cài đặt sẽ quay trở lại sau gần một giây (vì vậy, vâng, màn hình của tôi sáng lên rồi tắt). Làm thế nào tôi có thể, làm cho các xgammacài đặt vĩnh viễn (hoặc liên tục) hoặc tôi phải sử dụng một công cụ khác?

Hệ thống của tôi là một máy tính để bàn.

Có vẻ xrandr --output DVI-0 --brightness 2như làm như vậy, nhưng vẫn trở về 0 bất cứ khi nào tôi áp dụng các cài đặt.

Mỗi lần tôi cố gắng thay đổi nó, đầu ra sau đây sẽ điền vào Xorg.0.logtệp:

[ 14768.313] (II) RADEON(0): EDID vendor "HWP", prod id 9798
[ 14768.313] (II) RADEON(0): Using hsync ranges from config file
[ 14768.313] (II) RADEON(0): Using vrefresh ranges from config file
[ 14768.313] (II) RADEON(0): Printing DDC gathered Modelines:
[ 14768.313] (II) RADEON(0): Modeline "1024x768"x0.0   65.00  1024 1048 1184 1344  768 771 777 806 -hsync -vsync (48.4 kHz eP)
[ 14768.313] (II) RADEON(0): Modeline "800x600"x0.0   40.00  800 840 968 1056  600 601 605 628 +hsync +vsync (37.9 kHz e)
[ 14768.313] (II) RADEON(0): Modeline "640x480"x0.0   31.50  640 656 720 840  480 481 484 500 -hsync -vsync (37.5 kHz e)
[ 14768.313] (II) RADEON(0): Modeline "640x480"x0.0   31.50  640 664 704 832  480 489 492 520 -hsync -vsync (37.9 kHz e)
[ 14768.313] (II) RADEON(0): Modeline "640x480"x0.0   25.18  640 656 752 800  480 490 492 525 -hsync -vsync (31.5 kHz e)
[ 14768.313] (II) RADEON(0): Modeline "720x400"x0.0   28.32  720 738 846 900  400 412 414 449 -hsync +vsync (31.5 kHz e)
[ 14768.313] (II) RADEON(0): Modeline "1024x768"x0.0   78.75  1024 1040 1136 1312  768 769 772 800 +hsync +vsync (60.0 kHz e)
[ 14768.313] (II) RADEON(0): Modeline "1024x768"x0.0   75.00  1024 1048 1184 1328  768 771 777 806 -hsync -vsync (56.5 kHz e)
[ 14768.313] (II) RADEON(0): Modeline "832x624"x0.0   57.28  832 864 928 1152  624 625 628 667 -hsync -vsync (49.7 kHz e)
[ 14768.313] (II) RADEON(0): Modeline "800x600"x0.0   49.50  800 816 896 1056  600 601 604 625 +hsync +vsync (46.9 kHz e)
[ 14768.313] (II) RADEON(0): Modeline "800x600"x0.0   50.00  800 856 976 1040  600 637 643 666 +hsync +vsync (48.1 kHz e)

Vì vậy, rõ ràng màn hình của tôi được thiết kế lại mỗi lần.


Màn hình của bạn không có điều khiển phần cứng cho điều đó?
jordanm

@jordanm yeah, những cái đó được tối đa hóa. Màn hình không sáng lắm để bắt đầu.
Braiam

Câu trả lời:


23

Tôi ngớ ngẩn quá! Tôi có xflux với fluxgui được kích hoạt, mỗi lần tôi muốn sửa đổi cài đặt xflux sẽ theo cách của tôi. Tất cả các lệnh đã hoạt động, chỉ là xflux sẽ hoàn nguyên nó trở lại.

Những người muốn thay đổi gamma / độ sáng của họ:

Sử dụng xrandrđể liệt kê kết quả đầu ra của bạn:

$ xrandr
Screen 0: minimum 320 x 200, current 1024 x 768, maximum 8192 x 8192
DVI-0 connected 1024x768+0+0 (normal left inverted right x axis y axis) 304mm x 228mm

Như bạn có thể thấy đầu ra của tôi là DVI-0thay đổi độ sáng:

xrandr --output DVI-0 --brightness 2

Để thay đổi gamma:

xrandr --output DVI-0 --gamma 2:2:1

3
Có một gui tương tác cho các cài đặt xrandr này không? Tôi không thể tốt một.
Fabio A.

@FabioA. Nếu bạn chưa tìm thấy GUI nhưng bạn có thể muốn đăng câu hỏi mới trên trang này hoặc hỏi trang Ubuntu.
WinEunuuchs2Unix

3

Tôi đã hy vọng có một số chương trình tương tác để điều chỉnh xrandrcài đặt (cụ thể là gamma / độ sáng), nhưng không thể tìm thấy bất cứ điều gì.

Vì vậy, tôi đã viết kịch bản shell này cho phép điều chỉnh độ sáng / gamma tương tác, cũng như lưu / khôi phục cài đặt.

Lưu tệp vào irandr.sh, thực hiện chmod u+x irandr.shđể làm cho nó thực thi và chạy như ./irandr.sh <outputname>.

Các d/ f/ D/ F/ j/ k/ J/ Kphím điều chỉnh độ sáng ( d/ f/ D/ F) hoặc gamma ( j/ k/ J/ K) cài đặt bằng cách bước 5 (chữ thường) hoặc 1 (chữ hoa).

  • s lưu các thiết lập vào dotfile
  • l tải các cài đặt từ dotfile
  • r Đặt lại độ sáng / gamma về mặc định (1.0)
  • q bỏ cuộc.

Dotfile cho một đầu ra nhất định là ~/irandr-<outputname>.dat. Nếu bạn chạy mà không có đối số, nó sẽ liệt kê các xrandrđầu ra hợp lệ .

Bạn có thể nối thêm một -setonlyđối số vào dòng lệnh, nó sẽ đọc các cài đặt cho dotfile của màn hình đã cho, cập nhật màn hình và thoát. (Có ích, có lẽ, trong một ~/.bashrctệp để tự động đặt gamma / độ sáng.)

#!/bin/bash
# irandr.sh, by Dale Gass (dale@gass.ca)
# Wed Apr 10 16:43:22 EDT 2019

# Process arguments
if [ "$1" != "" ]
then
    output="$1"
else
    echo "Usage: irandr.sh <outputname> [-setonly]"
    echo "(Settings saved to ~/.xrandr-<outputname>.dat)"
    echo
    echo "Valid outputs:"
    xrandr | egrep -v '^( |Screen)'
    exit 1
fi
setonly=0
if [ "$2" = "-setonly" ]; then setonly=1; fi

# Initialize variables, read for dotfile if exists
cmdhelp="d/f/D/F=brightness j/k/J/K=gamma r=reset s=save l=load q=quit"
brightness=100
gamma=100
dotfile=~/.irandr-"$output".dat
if [ -s "$dotfile"  ]; then read brightness gamma <"$dotfile"; fi
if [ $setonly -eq 0 ]; then 
    echo $cmdhelp
    stty -echo raw intr $'\000' # Allow single character input
fi

# Main loop for setting adjustment
echo 'Bright Gamma'
while :
do
    b=$(bc <<< "scale=2; $brightness/100")  # Make 0.0-1.0
    g=$(bc <<< "scale=2; $gamma/100")
    xrandr --output "$output" --brightness "$b" --gamma "$g:$g:$g"
    printf "\r%4d %4d " $brightness $gamma
    if [ $setonly -eq 1 ]; then echo; exit 0; fi

    read -n1 ch     # Get input character from user
    case $ch in
    d) let brightness=brightness-5;; D) let brightness=brightness-1;;
    f) let brightness=brightness+5;; F) let brightness=brightness+1;;
    j) let gamma=gamma-5;;           J) let gamma=gamma-1;;
    k) let gamma=gamma+5;;           K) let gamma=gamma+1;;
    r) brightness=100; gamma=100;;
    s) echo "$brightness    $gamma" >"$dotfile" && echo -e "Saved\r";;
    l) read brightness gamma <"$dotfile"     && echo -e "Loaded\r";;
    q|$'\003') break;;
    *) echo -e "$cmdhelp\r";;
    esac
done

stty echo -raw intr $'\003' # Undo single character input
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.