夜に目を節約するために、赤を追加したり青を削除したりすることは、 Windows 1 (ブルーライトフィルター)とLinuxで一般的になっています。 Gnome Desktop (Night Light)および Red Shift または f.Lux などのアドオンを備えたUbuntu Unity Desktop.
Ubuntuのビルトインコマンドラインxrandr <monitor> --gamma 1:1:1
機能を使用して同じことを実現する方法について疑問に思っています。 1:1:1
は、red:green:blueの割合を表します。 1
= 100%と仮定します。上記のパッケージが赤(1.2:1:1
)を追加して20%増加するのか、青(1:1:0.8
)を20%減少して追加するのか、または両方とも40%の変更で追加するのかわかりません。
OMG Ubunt によると、GnomeのNight Light内では次の数値を使用できます。
これらの数値をテストするには、どのように変換してデフォルトの--gamma 1:1:1
をオーバーライドしますか?
Xorgのドキュメント は--gamma
コントロールについてあまり言及していません:
-ガンマ赤:緑:青
- この出力に現在接続されているcrtcで、指定された浮動小数点値をガンマ補正として設定します。クローン出力(つまり、同じcrtcを共有する)に対して2つの異なる値を取得することはできず、出力を別のcrtcに切り替えてもcrtcガンマ補正はまったく変更されないことに注意してください。
アップグレードしたいスクリプト 夜明けと夕暮れ時の90から120分の移行期間にわたってxbacklight
の明るさを毎分ゆっくり設定するため、浮動小数点が役立ちます。外部モニターのxrandr --brightness
ソフトウェアサポートと、内蔵ディスプレイとOLEDの両方のサポートと、赤色光/青色光フィルターのxrandr --gamma
サポートの両方で、スクリプトを強化したいです。 Xorgはサポートされている小数点以下の桁数を述べていませんが、読みやすさ/精度のバランスのためにbc
計算を小数点以下3桁または4桁に設定する必要があると思います。
私は、マイクロソフトとGnomeの「大物」が「より赤く」および/または「より青くない」テクニックでやっていることを真似したいと思っています。ウェイランドについてはまだ詳しく調べていませんが、そのシステムを使用した回答も将来の懸念事項となることは間違いないため、高く評価されます。
--gamma 1:1:1
のどの調整が夜間に適切ですか?ユーザーが色温度を設定できるプログラムsct
のソースコードを見つけました。 redshift
から「コードを切り刻み」、赤、緑、青の値のマッピングを提供します。
/* cribbed from redshift, but truncated with 500K steps */
static const struct { float r; float g; float b; } whitepoints[] = {
{ 1.00000000, 0.18172716, 0.00000000, }, /* 1000K */
{ 1.00000000, 0.42322816, 0.00000000, },
{ 1.00000000, 0.54360078, 0.08679949, },
{ 1.00000000, 0.64373109, 0.28819679, },
{ 1.00000000, 0.71976951, 0.42860152, },
{ 1.00000000, 0.77987699, 0.54642268, },
{ 1.00000000, 0.82854786, 0.64816570, },
{ 1.00000000, 0.86860704, 0.73688797, },
{ 1.00000000, 0.90198230, 0.81465502, },
{ 1.00000000, 0.93853986, 0.88130458, },
{ 1.00000000, 0.97107439, 0.94305985, },
{ 1.00000000, 1.00000000, 1.00000000, }, /* 6500K */
{ 0.95160805, 0.96983355, 1.00000000, },
{ 0.91194747, 0.94470005, 1.00000000, },
{ 0.87906581, 0.92357340, 1.00000000, },
{ 0.85139976, 0.90559011, 1.00000000, },
{ 0.82782969, 0.89011714, 1.00000000, },
{ 0.80753191, 0.87667891, 1.00000000, },
{ 0.78988728, 0.86491137, 1.00000000, }, /* 10000K */
{ 0.77442176, 0.85453121, 1.00000000, },
};
上記の3つの列は、Red、Green、および青。
90分から120分間の夜明けと夕暮れ時に 明るさとガンマを徐々に調整 するbashスクリプトのコレクションを書きました。完全な輝度設定は次のとおりです。
xrandr --output DP-1-1 --gamma 1:1:1 --brightness 1.0
夜間の設定は次のとおりです。
xrandr --output DP-1-1 --gamma 1.1:0.8:0.7 --brightness 0.55
最後に1つの答えが見つかりました: XRANDR OR BLUE LIGHT EXPOSUREの詳細
#!/bin/sh
night_mode() {
for disp in $(xrandr | sed -n 's/^\([^ ]*\).*\<connected>.*/\1/p'); do
xrandr --output $disp --gamma $1 --brightness $2
done }
case $1 in
off) night_mode 1:1:1 1.0 ;;
*) night_mode 1:1:0.5 0.7 ;;
esac
このスクリプトは、接続されているすべてのXorgディスプレイの青色光成分と輝度を減らします。 bin
ディレクトリ、chmod +x
itに保存し、必要に応じてcron
ジョブまたはキーボードショートカットを追加して関数を呼び出します。
使い方?パラメータを指定せずにスクリプト名を入力するだけで、青色光が減少します。通常の設定に戻すには、コマンドの後にoff
パラメーターを追加します。