アプリケーションごとの透過性
xterm 自動透明度ガイドに従って、xcompmgr と、または他のコンポジタ、transset-dfAUR だけで、アプリケーションごとに透明度を設定することができます。xterm をお使いのプログラム名に置き換えてください:
xterm & sleep .8s && transset-df -a
Openbox のキー/マウスバインディングでは、rc.xml
の中に以下を使用してください:
<execute>sh -c 'xterm & sleep .8s && transset-df -a'</execute>
この記事では、アプリケーションごとに透明度を 自動的に 設定する方法について詳しく説明しています。
透明度はデスクトップを少し見栄え良くするだけでなく、実用的な用途もあります。特に、ターミナルやテキストエディタでは、コードの断片をコピーしたり、マニュアルを読んだりするときに透明度を重ねると便利です。しかし、ブラウザや画像ビューアなどでは気が散ってしまうことがあります。
通常、xcompmgr を使ってすべてのウィンドウを透明にするか、ネイティブでサポートしているアプリケーションの特別なウィンドウを透明にすることができます(例えば、urxvt)。また、個々のウィンドウで透明度を設定するために、transset-df を使った チュートリアル も数多く存在していますが、これには開くたびに透明度を手動で設定する必要があります。
ただし、devilspie を組み合わせることで、アプリケーションごとに透明度を自動的に設定することができます。
インストール
まず、xcompmgr、transset-dfAUR、devilspie がインストールされていることを確認してください。インストールされたら、xcompmgr を実行します(すでに実行している場合は不要です):
$ xcompmgr &
設定
必要なものがインストールされたら、devilspie を設定します。基本的に、devilspie はウィンドウマッチングユーティリティとして機能します。デーモンとして実行され、特定のウィンドウに一致するルールを指定することができます。その後、そのウィンドウに関連するコマンド(通常はそのウィンドウに関連するコマンド)を実行する機能が提供されます。これは、Openbox の rc.xml と似ていますが、この場合、Openbox だけでは必要な機能を提供してくれません。
まず、~/.devilspie
内に opacity.ds ファイルを作成します(そのディレクトリが存在しない場合は作成してください):
$ mkdir -p ~/.devilspie $ cd ~/.devilspie $ touch opacity.ds
次に、opacity.ds ファイルに以下のような内容を記述します:
( if ( contains ( window_class ) "Gvim" ) ( begin ( spawn_async (str "transset-df -i " (window_xid) " 0.85" )) ) )
このルールでは、window_class に "Gvim" という文字列が含まれているかどうかをチェックしています。もしそうであれば、透明度を 0.85 に下げるために transset-df ユーティリティを使ってコマンドを実行します。(0 から 1 までの値が有効で、前者は完全に透明、後者は完全に不透明です。)ここでのポイントは、window_xid 変数が利用可能であり、この例での devilspie の力です。
ウィンドウの見つけ方
もう一つのコツは、目的のウィンドウをどのようにマッチさせるかです。場合によっては、window_class の代わりに application_name を使ってマッチさせることがあります。これは、devilspie がウィンドウ情報をどのように読み取るかによります。ウィンドウを特定する方法を見つけるには、ターミナルで以下のコマンドを実行します:
$ devilspie -a
その後、目的のアプリケーションを 起動 します。ターミナルには、opacity.ds ファイルで使用できる識別情報が出力されます。また、xprop を使用することもできます。
異なるアプリケーションのマッチング
これで GVim が透明になりますが、複数のアプリケーションでこれを行いたい場合があります。以下は、GVim、Mirage、および Chromium ウィンドウをすべて透明にする例の設定です。(この例から他のウィンドウを追加する方法は明らかです。)
( if ( or ( contains ( window_class ) "Gvim" ) ( contains ( application_name ) "mirage" ) ( contains ( application_name ) "chrome" ) ) ( begin ( spawn_async (str "transset-df -i " (window_xid) " 0.85" )) ) )
背景での使用
場合によっては、アプリケーション(特にターミナル)を背景で透明なウィンドウとして設定することが望ましいです。
この効果を得るには、設定に以下を追加してください:
~/.devilspie/opacity.ds
... (begin (stick) (below) (undecorate) (skip_pager) (skip_tasklist) (wintype "dock") ...
必要に応じて、アプリケーション設定を通じてメニューバーを非表示にしたり、特定のジオメトリを定義したり、devilspie のジオメトリシンボルを追加して指定できます。
X と一緒に起動する
アプリケーションごとのウィンドウ透明度を読み込むために、X の起動スクリプト(例:~/.xinitrc
)に以下を追加してください:
xcompmgr & devilspie -a &
高度な設定
また、gdevilspieAUR は、devilspie の GUI 設定エディタです。