Picom
Compton は軽量なスタンドアロン型のコンポジットマネージャです。コンポジット機能が含まれていないウィンドウマネージャを使っている場合に向いています。Compton は xcompmgr-dana のフォークですが、xcompmgr-dana は xcompmgr のフォークです。詳しい情報は compton の github ページ を見て下さい。
Compton は大量にあった先行者のバグを修正していることで特に有名で、信頼性があり安定しているということで人気があります。他にも、高速な GLX (OpenGL) バックエンド (デフォルトでは無効になっています) やデフォルトのアクティブ・インアクティブウィンドウの透過、ウィンドウの枠の透過、ウィンドウの背景のブラー、ウィンドウの色の反転、描画レートの調整、垂直同期、条件で分岐する細かい制御、設定ファイルの読み込み、D-Bus の制御など、多数の改善や設定オプションが実装されています。
目次
インストール
compton をインストールしてください。git 版を使う場合、compton-gitAUR をインストールしてください。
使用方法
Compton はいつでも手動で有効化・無効化することができます。また、バックグラウンドで自動起動 (デーモン) することも可能です。また、コンポジット効果を設定できる任意の引数もあります。引数の一部:
-b
: バックグラウンドプロセス (デーモン) で実行 (例: Openbox などのウィンドウマネージャで自動起動する場合)-c
: 影効果を有効化-C
: パネルとドックの影効果を無効化-G
: アプリケーションウィンドウとドラッグアンドドロップオブジェクトの影効果を無効化--config
: 指定した設定ファイルを使用
他にも、タイミングの設定や、管理するディスプレイ、メニューやウィンドウの縁、インアクティブアプリケーションメニューの透過度など多数のオプションが存在します。詳しくは Compton Man Page を見て下さい。
自動起動
compton をデーモンとして自動起動させる方法は使っているデスクトップ環境やウィンドウマネージャによります。例えば、Openbox の場合 ~/.config/openbox/autostart
ファイルを編集する必要があります。i3 の場合 ~/.i3/config
ファイルを使います。必要であれば、xprofile や xinitrc から compton を自動起動することもできます。詳細は自動起動の記事を見て下さい。
コマンドを使う
セッション中にデフォルトのコンポジット効果を手動で有効化するには、次のコマンドを使用:
$ compton
また、影効果を全て無効化するには、-C
と -G
引数を追加します:
$ compton -CG
バックグラウンドプロセス (デーモン) として compton を自動起動するには、-b
引数を使います:
compton -b
デーモンプロセスの影効果を全て無効化するには、-C
と -G
引数を追加:
compton -CGb
以下は引数を追加して必要な値を設定した例です:
compton -cCGfF -o 0.38 -O 200 -I 200 -t 0 -l 0 -r 3 -D2 -m 0.88
設定ファイルを使う
compton でカスタム設定ファイルを使うには、次のコマンドを使用:
compton --config <path/to/compton.conf>
バックグラウンドプロセス (デーモン) として compton を自動起動するには、-b
引数を使います:
compton --config <path/to/compton.conf> -b
隠しディレクトリの ~/.config
に設定ファイル (~/.config/compton.conf
) を作成するか、Home
ディレクトリに隠しファイル (~/.compton.conf
) を作成することが推奨されています。サンプル設定ファイルは次のページにあります: Compton Sample Config。
conky の影を無効化
conky のウィンドウの影を無効化するには、以下のように conky の設定ファイル ~/.conkyrc
を修正してください:
own_window_class conky
そして以下のように compton の設定ファイルを修正してください:
shadow-exclude = "class_g = 'conky'";
マルチディスプレイ
xinerama を使わずにマルチディスプレイの設定をしている場合 (複数のスクリーンで X サーバーを実行している場合)、デフォルトでは compton は一つのスクリーンでしか起動しません。-d
引数を使うことで全てのスクリーンで実行させることができます。例えば、4つモニターがある場合に compton を起動するときは次のコマンドを使用します:
seq 0 3 | xargs -l1 -I@ compton -b -d :0.@
トラブルシューティング
他のアプリケーションやプログラムで正しい設定をしていない場合、コンポジット効果を有効にすることで外観がおかしくなる問題が発生することがあります。
Slock
インアクティブウィンドウの透過を有効にしている場合 (コマンドで実行している場合 -i
引数)、slock を使っているときに問題が発生します。透過度を 0.2
にすることで解決します。例えばコマンドで compton を実行する場合:
$ compton <any other arguments> -i 0.2
または、設定ファイルを使う場合:
inactive-dim = 0.2;
もしくは、slock のウィンドウ ID を使用して slock を除外する方法もあります。
次のコマンドを実行することで slock のウィンドウ id を確認できます:
$ xwininfo & slock
画面の何処かを (slock が終了する前に) 素早くクリックして、パスワードを入力してロックを解除してください。以下のようにウィンドウ id が出力されます:
xwininfo: Window id: 0x1800001 (has no name)
取得できたウィンドウ id を使って compton から除外するには:
$ compton <any other arguments> --focus-exclude 'id = 0x1800001'
もしくは、設定ファイルを使う場合:
focus-exclude = "id = 0x1800001";
dwm のステータスバーは compton の関数から検出されず、自動的にウィンドウマネージャのエレメントが除外されることはありません。また、dwm のステータスバーと dmenu のどちらもウィンドウ id は固定されていません。ステータスバーがウィンドウ透過しないようにしたい場合、ソースコードのウィンドウクラスにパッチをあてるか、他の属性を使って除外してください。dmenu と dwm のステータスバーを上部に表示している場合、位置によって指定することができます:
$ compton <any other arguments> --focus-exclude "x = 0 && y = 0 && override_redirect = true"
もしくは、設定ファイルを使う場合:
focus-exclude = "x = 0 && y = 0 && override_redirect = true";
上書きリダイレクトプロパティは大抵のウィンドウでは false になっています。それによって左下に配置された他のウィンドウが除外されることを防げます (例えば、dwm ステータスバーが非表示になった場合、x0 y0 は dwm のマスタースタックにある全てのウィンドウにマッチします)。
GTK3 アプリケーションで影が二重になる
gtk3 バージョン 3.12.1 から、Compton を使っている場合に GTK+ 3 のウィンドウやダイアログで影が二重にレンダリングされることがあります。この問題は GTK+ 3 と Compton の両方の影が 同時に適用されてしまう のが原因です。GTK+#クライアントサイドデコレーション を参照。
GTK+3 ウィンドウで Compton の影を無効化するには、compton.conf
に以下のルールを追加します:
shadow-exclude = [ "_GTK_FRAME_EXTENTS@:c" ]
もしくは次の引数を付けて compton
を実行してください: --shadow-exclude 'argb && _NET_WM_OPAQUE_REGION@:c'
xsetroot で背景色が変えられない
現在、compton は xsetroot
の -solid
オプションと互換性がありません。解決方法としては hsetrootAUR を使って背景色を設定するようにしてください:
$ hsetroot -solid '#000000'
詳しくは https://github.com/chjj/compton/issues/162 を参照。
AMD の Catalyst ドライバーを使ってる場合に画面に問題が発生する
次の引数を付けて compton を起動するか:
--backend xrender
compton.conf
ファイルに以下を追加してください:
backend = "xrender";
詳しくは https://github.com/chjj/compton/issues/208 を参照。
nvidia ドライバーを使っている場合に CPU 消費量が跳ね上がる
--backend glx
を使用した場合に CPU の使用量が高くなったり --vsync
を有効にしているとティアリングが発生する場合、NVIDIA に書かれているように nvidia-libgl をインストールしてください。