質問: xorgのガンマ/明るさを変更する方法は? 私の環境では非常に暗いので、明るさを変更する必要があるゲーム(deus ex)をプレイしようとしています。ゲームには「明るさ」設定がありますが、最近は機能しません。私はそれを変更する方法を見つけ出して、xgammaがxgamma -gamma 5。しかし、変更すると、ほぼ1秒後に設定が元に戻ります(つまり、画面が明るくなってからシャットダウンします)。 xgamma設定を永続的(または永続的)にするにはどうすればよいですか、または別のツールを使用する必要がありますか?私のシステムはデスクトップです。どうやらxrandr --output dvi-0 --brightness 2同じことを行いますが、設定を適用するたびに0に戻ります。i tryを変更するたびに、次の出力がxorg.0.logファイル:[ 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) だから、どうやら私のモニターは毎回再検出されます。
回答: xrandrの設定(特にガンマ/明るさ)を調整するためのインタラクティブなプログラムがあることを望んでいましたが、何も見つかりませんでした。そこで、このシェルスクリプトを作成して、明るさ/ガンマをインタラクティブに調整したり、設定を保存/復元したりできるようにしました。ファイルをirandr.shに保存し、chmod u+x irandr.shを実行可能にして、./irandr.sh <outputname>として実行します。の d/f/d/f/j/k/j/k キーで明るさを調整します(d/f/d/f)またはガンマ(j/k/j/k)5(小文字)または1(大文字)のステップによる設定 s設定をdotfileに保存します lは、dotfileから設定をロードします rは、輝度/ガンマをデフォルト(1.0)にリセットします qは終了します。 特定の出力のドットファイルは~/irandr-<outputname>.datです。引数なしで実行すると、有効なxrandr出力がリストされます。コマンドラインに-setonly引数を追加すると、指定されたディスプレイのdotfileの設定を読み取り、ディスプレイを更新して終了します。 (おそらく~/.bashrcファイルで、ガンマ/明るさを自動的に設定するのに便利です。)#!/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