試験運用中なLinux備忘録・旧記事

はてなダイアリーで公開していた2007年5月-2015年3月の記事を保存しています。

X Window Systemでnvidia,fglrx以外のドライバを用いた環境における明るさとガンマの調整について(ページ1/3)

NVIDIA製の「nvidia」とAMD(ATI)製の「fglrx」の各プロプライエタリドライバでは付属ツールによって明るさとガンマの調整が行えるが、これらのドライバに対応しないGPUを使用した場合や、代わりの自由なソフトウェアのドライバを使用している場合では別の方法でこれらを調整する。

既存のツール

xbrightness

http://disjunkt.com/xbrightness/
にあるxbrightnessというツールは明るさとガンマを同時に設定できるCLIツールだが、残念ながら赤/緑/青の各色成分ごとのガンマ調整は行えない。
コンパイルにはlibXxf86vmというライブラリの開発パッケージが必要。下はビルドシステムを用いた作業例だが

(ソースの展開)
$ tar zxf [xbrightness-0.3.tar.gzの場所]
(作業ディレクトリの移動)
$ cd xbrightness-0.3/
(ImakefileからMakefileを生成)
[xbrightness-0.3]$ xmkmf
(ビルドシステムによるビルド)
[xbrightness-0.3]$ make
(ビルドシステムによるインストール・/usr/以下に入ってしまうので削除はしにくくなる)
[xbrightness-0.3]$ sudo make install

このビルドシステムを用いると不必要なライブラリlibXawにリンクしようとするので、手動で

(手動コンパイル)
[xbrightness-0.3]$ gcc -O2 -Wall -Wextra xbrightness.c -o xbrightness $(pkg-config --cflags --libs xxf86vm) -lm

のようにコンパイルすることもできる。

(手動インストール・上の代わりに実行)
[xbrightness-0.3]$ sudo install -s -m 755 xbrightness [実行ファイルの配置ディレクトリ]

ビルドシステムを用いる場合はImakefileから「XawClientDepLibs」「XawClientLibs」の記述を消す方法もある。
下は使い方。

$ xbrightness [明るさ] 
$ xbrightness [明るさ] [全ての色成分で共通のガンマ値]

明るさは0-65535の範囲で指定する。バージョン0.3の時点ではガンマ値は補正(1 / ガンマ)の値ではなく、下のxgammaとは指定値が逆数の関係になる。例えば、xgammaで「2.2」指定したのと同じ効果を得るにはxbrightnessでは(1 / 2.2 ≒)「0.4546」のように指定する。

xgamma

多くのディストリでパッケージになっている*1xgammaコマンドは赤/緑/青の各色成分ごとのガンマ調整が可能となっているが、残念ながら明るさが変更できず、上のxbrightnessで明るさを調整してもxgammaを使用すると明るさが最大になってしまい、明るすぎになってしまう。また、逆の順番でも同様に先に実行したほうの結果が無効になってしまう。この動作仕様についてはxbrightness付属のmanページにも既知のバグとして書かれている。
下は使い方。

$ xgamma -rgamma [赤成分のガンマ補正値] -ggamma [緑成分のガンマ補正値] -bgamma [青成分のガンマ補正値]

(「X Window Systemでnvidia,fglrx以外のドライバを用いた環境における明るさとガンマの調整について(ページ2/3)」に続く)

関連記事:

使用したバージョン:

  • xbrightness 0.3
  • xgamma 1.0.3

*1:Debian/Ubuntuでは「x11-xserver-utils」に含まれる