半透明化機能の利用

Xorg 6.8. のマイナーバージョンあたりから、 アルファチャンネルを使ってウィンドウの半透明化ができるようになった。 なお、X 的には「Composite」なのかも知れないが、語感が好きなのと、 個人的にわかりやすいのでここでは アルファチャンネルと連呼することにする。

これまでもアプリケーション単位で半透明化する機能はあったが、多くの場合は 透明と言っても root window が透けて見えるだけの話で、 アプリケーションのウィンドウが重なりあっている場合には、 直感的でない不思議な状態となってしまっていた。 X 自体が半透明状態をサポートすることで、この違和感をやっと解消できるわけだ。

さて X 自体がアルファチャンネルをサポートすると言っても、 肝心のアプリケーションがこれを利用していなければ何も変わらない。 KDE のように Window Manager がアルファチャンネルに対応していれば 好きに半透明にすることができるのだが、 そういう Window Manager でない場合でも xcompmgr と transset を用いて、 ウィンドウ単位で無理矢理半透明化することができる。 例えば WindowMaker 0.92.0 はアルファチャンネルをサポートしていないが、 両ツールを利用することで実際に半透明化することができた。

xorg.conf

Xorg でこの機能を使うよう設定追加するために、 以下を xorg.conf に追記して、X を再起動する。

Section "Extensions"
    Option "Composite" "Enable"
EndSection

xcompmgr

xcompmgr は ports から入れる。

# cd x11-wm/xcompmgr
# make install clean

transset

transset は ports には入っていないようなので、野良ビルドする。

% cvs -d :pserver:anoncvs@cvs.freedesktop.org:/cvs/xapps login
(just press enter)
% cvs -d :pserver:anoncvs@cvs.freedesktop.org:/cvs/xapps co transset
% cd transset
% make

半透明化

うまくビルドできたら、実行する。

% xcompmgr -cfC
% ./transset 0.5
マウスポインタが「+」印になるので、対象ウィンドウを指定する。

transset には マニュアルもマトモな usage もないので、 使い方が知りたかったらソースを読むしかない (もしくは Google 先生に聞く)。 引数で数字を渡すと、それが透明度として解釈される。 うっかり 0 を指定してしまうと大変なことになる。

[$Revision: 1.2 $ $Date: 2007.12.09 18:49:28 $]
[EOF]