gnome-gamma-tool
コマンドラインツールで、VCGTテーブルを使ってカラー・プロファイルを作成し、GNOMEやCinnamonでガンマ、コントラスト、明るさを永続的に変更できます。
免責事項
これはGNOMEとCinnamonでのみ動作します。FedoraのGNOME 42-48およびCinnamonでテスト済みですが、古い/新しいバージョンでは動作しない可能性があります。ただし、すでに生成されたプロファイルは引き続き機能するはずです。これはかなりハッキーな方法で、カラープロファイルは本来このような使い方を想定していません。しかし、このユースケースは十分に稀であるため正当化できると思います。結局のところ、モニターがガンマを変更できないなら、それはモニターの問題ではないでしょうか?
より詳細な説明は仕組みをご覧ください。
注意: VCGTの制限により画面の彩度や色相を変更することはできませんが、gnome-saturation-extensionを試すことはできます(ただし欠点もあります)。
使用法
インストールは不要で、このリポジトリをクローンするだけです:git clone https://github.com/zb3/gnome-gamma-tool
cd gnome-gamma-tool
もし Debian/Ubuntu を使用している場合は、最初に gir1.2-colord-1.0 パッケージをインストールする必要があるかもしれません:sudo apt install gir1.2-colord-1.0
OpenSUSEの場合は、代わりにtypelib-1_0-Colord-1_0パッケージをインストールする必要があるかもしれません:
sudo zypper install typelib-1_0-Colord-1_0
もしNixOSを使用している場合は、このコメントを確認してください。その後、次のようにツールを呼び出すことができます:
./gnome-gamma-tool.py
(もしこれでうまくいかない場合は、新しい問題をこちらに報告してください)新しいプロファイルがインストールされたら、このツールは安全に削除できます。
画面のガンマ調整
-g 引数を使うとガンマ補正係数を指定できます。また、R:G:B 形式を使って個別のチャンネルに設定することも可能です。例えば:
./gnome-gamma-tool.py -g 0.8
or
./gnome-gamma-tool.py -g 0.8:0.8:0.8コントラストの調整(または色の反転)
-c パラメーターを使用してコントラストを変更することもできます。1 がデフォルト値で、-1 は実質的に色を反転させます。ここで 0 の値を使用すると画面がすべてグレーになるので注意してください...例えば:
./gnome-gamma-tool.py -c -1
初期状態から常に開始することに注意してください。したがって、上記のコマンドは以前のガンマ調整をすべて元に戻しますが、異なるオプションを組み合わせることも可能です:./gnome-gamma-tool.py -g 0.8 -c 0.5ここでもチャンネルごとの設定が機能するため、例えば赤と緑をそのままにして青チャンネルだけを反転することが可能です。どのように見えるか想像できますか?試してみてください:
./gnome-gamma-tool.py -c=1:1:-1
それが期待していたものでしたか? :)色温度の変更
色温度も変更可能で、-t オプションを使って温度を指定します。値は redshift と同様に機能し、6500 が中立値です。これはナイトライト機能の動作を妨げるものではなく、ナイトライトの調整は gnome-gamma-tool の設定に「上乗せ」されて行われることに注意してください。
./gnome-gamma-tool.py -t 5000明るさの調整(いわゆる)
このツールで明るさを調整することもできますが、物理的なディスプレイの明るさを上げることはできず、最大明るさの値を下げることでのみ明るさを下げることが可能です。-b オプションを使って調整します。値は 0 から 1 の範囲で受け付け、1 が中立値です:
./gnome-gamma-tool.py -b 0.7ここには、最小輝度値を増やすことができる別のオプションがあります。これは -bm オプションで、0 から 1 までの値を受け入れますが、今回は 0 が中立値です。実行後:
./gnome-gamma-tool.py -bm 0.3
出力値は決して 0.3 より小さくならないため、黒は黒ではなく実際にはグレーになり、白は依然として白のままで、中間の色はそれに応じて乗算されます。また、-b と -bm の組み合わせを使用して色を反転させることも可能です。
./gnome-gamma-tool.py -b 0 -bm 1
そして…それだけではありません。これらは R:G:B 表記のおかげで、個々のチャンネルごとにも機能します。これにより、色温度では実現できなかった画面をより緑色にするなどの新しい可能性が開けます:./gnome-gamma-tool.py -b 1:2:1
上記はまず 0.5:1:0.5 に変換され、技術的には画面の赤みと青みを減らしますが、実際には画面がより緑っぽく見えます。便利な機能ですよね、そう思いませんか?複数のディスプレイがある場合
-d オプションを使ってディスプレイのインデックスを指定できます(最初のものはインデックス 0 ですが、それがデフォルトなのでこの場合はこの引数を使う必要はありません…)。ディスプレイの順序は 設定 -> カラー パネルと同じです。例を示します:
./gnome-gamma-tool.py -d 1 -g 0.7-a オプションを使うと、すべてのディスプレイに変更を適用することもできます:
./gnome-gamma-tool.py -a -g 0.7ファイルへのエクスポート
現在の設定に影響を与えずに適切なVCGTテーブルを含むICCプロファイルを作成したい場合は、-o/--out-file引数を使用できます。現在のプロファイルは読み込まれないため、-i/--in-file引数でベースプロファイルを指定しない限り、出力はsRGBプロファイルになります。
その後、colormgrのようなツールを使ってインポートおよび適用できます。
# Create myprofile.icc file
python3 ./gnome-gamma-tool.py --min-brightness 0.05 --brightness 0.95 --out-file myprofile.iccThis command will print Device ID, save it
colormgr get-devicesThis command will print Profile ID, save it
colormgr import-profile myprofile.iccThis command will affect colors immediately
colormgr device-add-profile $displayId $profileIdThis command will remove imported profile and revert colors to original state immediately.
colormgr delete-profile $profileId
仕組み
Mutter(GNOMEのコンポジター)は役立つWaylandプロトコルを実装していないため、gammastepやwl-gammactlのようなツールは動作しません。ですが、MutterはD-Bus経由でSetCrtcGammaメソッドを公開しており、このメソッドは確かに動作します。ただし、gnome-gamma-toolが目的を達成する方法はこれではありません。理由は以下の通りです:
- 値がどこにも保存されないため、効果が持続しない
- このメソッドはすでに別のデーモンによって呼び出されており、効果は一時的でしかない
gsd-colorデーモンによって(間接的に)呼び出されており、現在その引数に影響を与える要素は二つあります:
- 現在有効なカラープロファイルのVCGTテーブル(colord経由で取得)
- 「ナイトライト」設定から導出される色温度
ここで一見明白な解決策は、gsd-colorをパッチして他の要素(GSettingsのプロパティなど)も考慮するようにし、gsettingsコマンドでガンマを調整できるようにすることかもしれません。これにより後でディスプレイパネルにGUIを追加する可能性も開けます。
しかし、これもgnome-gamma-toolの動作方法ではありません。gsd-colorをパッチするのは、そのパッチが上流にマージされる場合のみ意味があります。そうでなければ、カスタムパッチを適用しGNOMEの一部を再構築しなければならないのは、私(そしておそらくあなたにとっても)全く受け入れられません。だからこそgnome-gamma-toolは正しいVCGTテーブルを設定したカラープロファイルをインストールします。
gsd-colorはカラープロファイルを管理するのではなく、colordが提供するAPIを使ってそれを監視しています。gsd-colorにプロファイルを認識させるためには、以下のことが行われなければなりません:
- 指定されたデバイスに対してカラープロファイルが有効化されている
- そのプロファイルが(colordデータベースに)インストールされている
- そのプロファイルがデバイスに関連付けられている
- そのプロファイルが有効化されている
-o/--out-fileを指定しない限り)が、現在のプロファイルを複製しVCGTテーブルのみを変更します。デフォルトでは、現在のプロファイルはEDIDデータからgsd-colorが生成したものです。gsd-colorはD-Busシグナルを使ってデバイスやプロファイルの変更を監視しているため、プロファイルの変更を検知し最終的にSetCrtcGammaを呼び出します。以上です!
ではこの「VCGT」とは何でしょうか?VCGT(ビデオカードガンマテーブル)は基本的に色チャンネル(R、G、B)の値をマッピングします。例えばあるチャンネルの値がXなら、VCGTはこれをYに変換すべきと指定します。もちろん入力値すべてにVCGTのエントリがあるわけではなく、このテーブルは256エントリしかなく値は補間されます(ただしこれはgnome-gamma-toolでは行いません)。
VCGTによりガンマ(べき乗)、コントラスト、明るさの変更は可能ですが、色相の変更はできません。なぜなら一つのチャンネルが他のチャンネルに影響を与えることはできないからです。
--- Tranlated By Open Ai Tx | Last indexed: 2026-04-16 ---