「Picom」の版間の差分
Kusakata.bot (トーク | 投稿記録) 細 (文字列「compton」を「picom」に置換) |
|||
3行目: | 3行目: | ||
[[en:Compton]] |
[[en:Compton]] |
||
[[ru:Compton]] |
[[ru:Compton]] |
||
− | Compton は軽量なスタンドアロン型のコンポジットマネージャです。コンポジット機能が含まれていない[[ウィンドウマネージャ]]を使っている場合に向いています。Compton は [http://oliwer.net/xcompmgr-dana/ xcompmgr-dana] のフォークですが、xcompmgr-dana は [[xcompmgr]] のフォークです。詳しい情報は [https://github.com/chjj/ |
+ | Compton は軽量なスタンドアロン型のコンポジットマネージャです。コンポジット機能が含まれていない[[ウィンドウマネージャ]]を使っている場合に向いています。Compton は [http://oliwer.net/xcompmgr-dana/ xcompmgr-dana] のフォークですが、xcompmgr-dana は [[xcompmgr]] のフォークです。詳しい情報は [https://github.com/chjj/picom picom の github ページ] を見て下さい。 |
Compton は大量にあった先行者のバグを修正していることで特に有名で、信頼性があり安定しているということで人気があります。他にも、高速な GLX (OpenGL) バックエンド (デフォルトでは無効になっています) やデフォルトのアクティブ・インアクティブウィンドウの透過、ウィンドウの枠の透過、ウィンドウの背景のブラー、ウィンドウの色の反転、描画レートの調整、垂直同期、条件で分岐する細かい制御、設定ファイルの読み込み、D-Bus の制御など、多数の改善や設定オプションが実装されています。 |
Compton は大量にあった先行者のバグを修正していることで特に有名で、信頼性があり安定しているということで人気があります。他にも、高速な GLX (OpenGL) バックエンド (デフォルトでは無効になっています) やデフォルトのアクティブ・インアクティブウィンドウの透過、ウィンドウの枠の透過、ウィンドウの背景のブラー、ウィンドウの色の反転、描画レートの調整、垂直同期、条件で分岐する細かい制御、設定ファイルの読み込み、D-Bus の制御など、多数の改善や設定オプションが実装されています。 |
||
9行目: | 9行目: | ||
== インストール == |
== インストール == |
||
− | {{Pkg| |
+ | {{Pkg|picom}}{{Broken package link|置換パッケージ: {{Pkg|picom}}}} をインストールしてください。[[git]] 版を使う場合、{{AUR|picom-git}}{{Broken package link|パッケージが存在しません}} をインストールしてください。 |
== 使用方法 == |
== 使用方法 == |
||
20行目: | 20行目: | ||
* {{ic|--config}}: 指定した設定ファイルを使用 |
* {{ic|--config}}: 指定した設定ファイルを使用 |
||
− | 他にも、タイミングの設定や、管理するディスプレイ、メニューやウィンドウの縁、インアクティブアプリケーションメニューの透過度など多数のオプションが存在します。詳しくは [https://github.com/chjj/ |
+ | 他にも、タイミングの設定や、管理するディスプレイ、メニューやウィンドウの縁、インアクティブアプリケーションメニューの透過度など多数のオプションが存在します。詳しくは [https://github.com/chjj/picom/blob/master/man/picom.1.asciidoc Compton Man Page] を見て下さい。 |
− | {{Note|他の[[コンポジットマネージャ]]が動作している場合、'' |
+ | {{Note|他の[[コンポジットマネージャ]]が動作している場合、''picom'' を起動する前に無効化してください。}} |
=== 自動起動 === |
=== 自動起動 === |
||
− | + | picom を[[デーモン]]として自動起動させる方法は使っている[[デスクトップ環境]]や[[ウィンドウマネージャ]]によります。例えば、[[Openbox]] の場合 {{ic|~/.config/openbox/autostart}} ファイルを編集する必要があります。[[i3]] の場合 {{ic|~/.i3/config}} ファイルを使います。必要であれば、[[xprofile]] や [[xinitrc]] から picom を自動起動することもできます。詳細は[[自動起動]]の記事を見て下さい。 |
|
=== コマンドを使う === |
=== コマンドを使う === |
||
セッション中にデフォルトのコンポジット効果を手動で有効化するには、次のコマンドを使用: |
セッション中にデフォルトのコンポジット効果を手動で有効化するには、次のコマンドを使用: |
||
− | $ |
+ | $ picom |
また、影効果を全て無効化するには、{{ic|-C}} と {{ic|-G}} 引数を追加します: |
また、影効果を全て無効化するには、{{ic|-C}} と {{ic|-G}} 引数を追加します: |
||
− | $ |
+ | $ picom -CG |
− | バックグラウンドプロセス ([[デーモン]]) として |
+ | バックグラウンドプロセス ([[デーモン]]) として picom を自動起動するには、{{ic|-b}} 引数を使います: |
− | + | picom -b |
|
[[デーモン]]プロセスの影効果を全て無効化するには、{{ic|-C}} と {{ic|-G}} 引数を追加: |
[[デーモン]]プロセスの影効果を全て無効化するには、{{ic|-C}} と {{ic|-G}} 引数を追加: |
||
− | + | picom -CGb |
|
以下は引数を追加して必要な値を設定した例です: |
以下は引数を追加して必要な値を設定した例です: |
||
− | + | picom -cCGfF -o 0.38 -O 200 -I 200 -t 0 -l 0 -r 3 -D2 -m 0.88 |
|
=== 設定ファイルを使う === |
=== 設定ファイルを使う === |
||
− | デフォルトの設定は {{ic|/etc/xdg/ |
+ | デフォルトの設定は {{ic|/etc/xdg/picom.conf}} にあります。 {{ic|~/.config/picom.conf}} や {{ic|~/.picom.conf}} にコピーしてカスタマイズできます。 |
− | + | picom でカスタム設定ファイルを使うには、次のコマンドを使用: |
|
− | + | picom --config ''path/to/picom.conf'' |
|
− | バックグラウンドプロセス ([[デーモン]]) として |
+ | バックグラウンドプロセス ([[デーモン]]) として picom を自動起動するには、{{ic|-b}} 引数を使います: |
− | + | picom --config ''path/to/picom.conf'' -b |
|
==== 一部ウィンドウの影を無効化 ==== |
==== 一部ウィンドウの影を無効化 ==== |
||
− | + | picom が影を描画することによって、一部のアプリケーションでは見た目がおかしくなってしまうことがあります。{{ic|shadow-exclude}} オプションで picom の影を無効にできます。 |
|
− | 例えば GTK+3 のウィンドウで Compton の影を無効にするには、以下の設定を {{ic| |
+ | 例えば GTK+3 のウィンドウで Compton の影を無効にするには、以下の設定を {{ic|picom.conf}} の {{ic|shadow-exclude}} に追加してください: |
"_GTK_FRAME_EXTENTS@:c" |
"_GTK_FRAME_EXTENTS@:c" |
||
71行目: | 71行目: | ||
own_window_class conky |
own_window_class conky |
||
− | そして以下のように |
+ | そして以下のように picom の設定ファイルを修正してください: |
shadow-exclude = "class_g = 'conky'"; |
shadow-exclude = "class_g = 'conky'"; |
||
− | 無効化されるウィンドウについては [https://projects.archlinux.org/svntogit/community.git/tree/trunk/ |
+ | 無効化されるウィンドウについては [https://projects.archlinux.org/svntogit/community.git/tree/trunk/picom.conf?h=packages/picom#n80 こちら] を参照。 |
== マルチディスプレイ == |
== マルチディスプレイ == |
||
− | xinerama を使わずに[[マルチディスプレイ]]の設定をしている場合 (複数のスクリーンで X サーバーを実行している場合)、デフォルトでは |
+ | xinerama を使わずに[[マルチディスプレイ]]の設定をしている場合 (複数のスクリーンで X サーバーを実行している場合)、デフォルトでは picom は一つのスクリーンでしか起動しません。{{ic|-d}} 引数を使うことで全てのスクリーンで実行させることができます。例えば、4つモニターがある場合に picom を起動するときは次のコマンドを使用します: |
− | seq 0 3 | xargs -l1 -I@ |
+ | seq 0 3 | xargs -l1 -I@ picom -b -d :0.@ |
== トラブルシューティング == |
== トラブルシューティング == |
||
86行目: | 86行目: | ||
=== Slock === |
=== Slock === |
||
− | インアクティブウィンドウの透過を有効にしている場合 (コマンドで実行している場合 {{ic|-i}} 引数)、[[アプリケーション一覧/セキュリティ#スクリーンロック|slock]] を使っているときに問題が発生します。透過度を {{ic|0.2}} にすることで解決します。例えばコマンドで |
+ | インアクティブウィンドウの透過を有効にしている場合 (コマンドで実行している場合 {{ic|-i}} 引数)、[[アプリケーション一覧/セキュリティ#スクリーンロック|slock]] を使っているときに問題が発生します。透過度を {{ic|0.2}} にすることで解決します。例えばコマンドで picom を実行する場合: |
− | $ |
+ | $ picom <any other arguments> -i 0.2 |
または、設定ファイルを使う場合: |
または、設定ファイルを使う場合: |
||
96行目: | 96行目: | ||
もしくは、slock のウィンドウ ID を使用して slock を除外したり、名前がないウィンドウを全て除外する方法もあります。 |
もしくは、slock のウィンドウ ID を使用して slock を除外したり、名前がないウィンドウを全て除外する方法もあります。 |
||
{{note|プログラムによっては新しいインスタンスを起動するたびに id を変化させるものもありますが、slock の id は固定されています。}} |
{{note|プログラムによっては新しいインスタンスを起動するたびに id を変化させるものもありますが、slock の id は固定されています。}} |
||
− | 名前がないウィンドウを全て |
+ | 名前がないウィンドウを全て picom から除外するには: |
− | $ |
+ | $ picom <other arguments> --focus-exclude "! name~=''" |
次のコマンドを実行することで slock のウィンドウ id を確認できます: |
次のコマンドを実行することで slock のウィンドウ id を確認できます: |
||
$ xwininfo & slock |
$ xwininfo & slock |
||
画面の何処かを (slock が終了する前に) 素早くクリックして、パスワードを入力してロックを解除してください。以下のようにウィンドウ id が出力されます: |
画面の何処かを (slock が終了する前に) 素早くクリックして、パスワードを入力してロックを解除してください。以下のようにウィンドウ id が出力されます: |
||
xwininfo: Window id: 0x1800001 (has no name) |
xwininfo: Window id: 0x1800001 (has no name) |
||
− | 取得できたウィンドウ id を使って |
+ | 取得できたウィンドウ id を使って picom から除外するには: |
− | $ |
+ | $ picom <any other arguments> --focus-exclude 'id = 0x1800001' |
もしくは、設定ファイルを使う場合: |
もしくは、設定ファイルを使う場合: |
||
focus-exclude = "id = 0x1800001"; |
focus-exclude = "id = 0x1800001"; |
||
=== dwm と dmenu=== |
=== dwm と dmenu=== |
||
− | dwm のステータスバーは |
+ | dwm のステータスバーは picom の関数から検出されず、自動的にウィンドウマネージャのエレメントが除外されることはありません。また、dwm のステータスバーと dmenu のどちらもウィンドウ id は固定されていません。ステータスバーがウィンドウ透過しないようにしたい場合、ソースコードのウィンドウクラスにパッチをあてるか、他の属性を使って除外してください。dmenu と dwm のステータスバーを上部に表示している場合、位置によって指定することができます: |
− | $ |
+ | $ picom <any other arguments> --focus-exclude "x = 0 && y = 0 && override_redirect = true" |
もしくは、設定ファイルを使う場合: |
もしくは、設定ファイルを使う場合: |
||
focus-exclude = "x = 0 && y = 0 && override_redirect = true"; |
focus-exclude = "x = 0 && y = 0 && override_redirect = true"; |
||
115行目: | 115行目: | ||
=== xsetroot で背景色が変えられない === |
=== xsetroot で背景色が変えられない === |
||
− | 現在、 |
+ | 現在、picom は {{ic|xsetroot}} の {{ic|-solid}} オプションと互換性がありません。解決方法としては {{Pkg|hsetroot}} を使って背景色を設定するようにしてください: |
$ hsetroot -solid '#000000' |
$ hsetroot -solid '#000000' |
||
− | 詳しくは https://github.com/chjj/ |
+ | 詳しくは https://github.com/chjj/picom/issues/162 を参照。 |
=== AMD の Catalyst ドライバーを使ってる場合に画面に問題が発生する === |
=== AMD の Catalyst ドライバーを使ってる場合に画面に問題が発生する === |
||
− | 次の引数を付けて |
+ | 次の引数を付けて picom を起動するか: |
--backend xrender |
--backend xrender |
||
− | {{ic| |
+ | {{ic|picom.conf}} ファイルに以下を追加してください: |
backend = "xrender"; |
backend = "xrender"; |
||
− | 詳しくは https://github.com/chjj/ |
+ | 詳しくは https://github.com/chjj/picom/issues/208 を参照。 |
=== nvidia ドライバーを使っている場合に CPU 消費量が跳ね上がる === |
=== nvidia ドライバーを使っている場合に CPU 消費量が跳ね上がる === |
||
138行目: | 138行目: | ||
=== nvidia ドライバーを使っている場合にデーモン化しようとするとエラーが発生する === |
=== nvidia ドライバーを使っている場合にデーモン化しようとするとエラーが発生する === |
||
− | + | picom をバックグラウンドで起動しようとすると {{ic|main(): Failed to create new session.}} エラーが表示される場合 {{AUR|picom-garnetius-git}}{{Broken package link|パッケージが存在しません}} を使ってください。上流にマージされていないパッチが当てられています。 |
|
=== xft フォントを使用した場合にラグが発生する === |
=== xft フォントを使用した場合にラグが発生する === |
||
148行目: | 148行目: | ||
もしくは xrender バックエンドを使ってみてください。 |
もしくは xrender バックエンドを使ってみてください。 |
||
− | 詳しくは [https://github.com/chjj/ |
+ | 詳しくは [https://github.com/chjj/picom/issues/152] を参照。 |
== 参照 == |
== 参照 == |
2019年11月21日 (木) 18:53時点における版
Compton は軽量なスタンドアロン型のコンポジットマネージャです。コンポジット機能が含まれていないウィンドウマネージャを使っている場合に向いています。Compton は xcompmgr-dana のフォークですが、xcompmgr-dana は xcompmgr のフォークです。詳しい情報は picom の github ページ を見て下さい。
Compton は大量にあった先行者のバグを修正していることで特に有名で、信頼性があり安定しているということで人気があります。他にも、高速な GLX (OpenGL) バックエンド (デフォルトでは無効になっています) やデフォルトのアクティブ・インアクティブウィンドウの透過、ウィンドウの枠の透過、ウィンドウの背景のブラー、ウィンドウの色の反転、描画レートの調整、垂直同期、条件で分岐する細かい制御、設定ファイルの読み込み、D-Bus の制御など、多数の改善や設定オプションが実装されています。
インストール
picom[リンク切れ: 置換パッケージ: picom] をインストールしてください。git 版を使う場合、picom-gitAUR[リンク切れ: パッケージが存在しません] をインストールしてください。
使用方法
Compton はいつでも手動で有効化・無効化することができます。また、バックグラウンドで自動起動 (デーモン) することも可能です。また、コンポジット効果を設定できる任意の引数もあります。引数の一部:
-b
: バックグラウンドプロセス (デーモン) で実行 (例: Openbox などのウィンドウマネージャで自動起動する場合)-c
: 影効果を有効化-C
: パネルとドックの影効果を無効化-G
: アプリケーションウィンドウとドラッグアンドドロップオブジェクトの影効果を無効化--config
: 指定した設定ファイルを使用
他にも、タイミングの設定や、管理するディスプレイ、メニューやウィンドウの縁、インアクティブアプリケーションメニューの透過度など多数のオプションが存在します。詳しくは Compton Man Page を見て下さい。
自動起動
picom をデーモンとして自動起動させる方法は使っているデスクトップ環境やウィンドウマネージャによります。例えば、Openbox の場合 ~/.config/openbox/autostart
ファイルを編集する必要があります。i3 の場合 ~/.i3/config
ファイルを使います。必要であれば、xprofile や xinitrc から picom を自動起動することもできます。詳細は自動起動の記事を見て下さい。
コマンドを使う
セッション中にデフォルトのコンポジット効果を手動で有効化するには、次のコマンドを使用:
$ picom
また、影効果を全て無効化するには、-C
と -G
引数を追加します:
$ picom -CG
バックグラウンドプロセス (デーモン) として picom を自動起動するには、-b
引数を使います:
picom -b
デーモンプロセスの影効果を全て無効化するには、-C
と -G
引数を追加:
picom -CGb
以下は引数を追加して必要な値を設定した例です:
picom -cCGfF -o 0.38 -O 200 -I 200 -t 0 -l 0 -r 3 -D2 -m 0.88
設定ファイルを使う
デフォルトの設定は /etc/xdg/picom.conf
にあります。 ~/.config/picom.conf
や ~/.picom.conf
にコピーしてカスタマイズできます。
picom でカスタム設定ファイルを使うには、次のコマンドを使用:
picom --config path/to/picom.conf
バックグラウンドプロセス (デーモン) として picom を自動起動するには、-b
引数を使います:
picom --config path/to/picom.conf -b
一部ウィンドウの影を無効化
picom が影を描画することによって、一部のアプリケーションでは見た目がおかしくなってしまうことがあります。shadow-exclude
オプションで picom の影を無効にできます。
例えば GTK+3 のウィンドウで Compton の影を無効にするには、以下の設定を picom.conf
の shadow-exclude
に追加してください:
"_GTK_FRAME_EXTENTS@:c"
conky のウィンドウの影を無効化するには、以下のように conky の設定ファイル ~/.conkyrc
を修正してください:
own_window_class conky
そして以下のように picom の設定ファイルを修正してください:
shadow-exclude = "class_g = 'conky'";
無効化されるウィンドウについては こちら を参照。
マルチディスプレイ
xinerama を使わずにマルチディスプレイの設定をしている場合 (複数のスクリーンで X サーバーを実行している場合)、デフォルトでは picom は一つのスクリーンでしか起動しません。-d
引数を使うことで全てのスクリーンで実行させることができます。例えば、4つモニターがある場合に picom を起動するときは次のコマンドを使用します:
seq 0 3 | xargs -l1 -I@ picom -b -d :0.@
トラブルシューティング
他のアプリケーションやプログラムで正しい設定をしていない場合、コンポジット効果を有効にすることで外観がおかしくなる問題が発生することがあります。
Slock
インアクティブウィンドウの透過を有効にしている場合 (コマンドで実行している場合 -i
引数)、slock を使っているときに問題が発生します。透過度を 0.2
にすることで解決します。例えばコマンドで picom を実行する場合:
$ picom <any other arguments> -i 0.2
または、設定ファイルを使う場合:
inactive-dim = 0.2;
もしくは、slock のウィンドウ ID を使用して slock を除外したり、名前がないウィンドウを全て除外する方法もあります。
名前がないウィンドウを全て picom から除外するには:
$ picom <other arguments> --focus-exclude "! name~="
次のコマンドを実行することで slock のウィンドウ id を確認できます:
$ xwininfo & slock
画面の何処かを (slock が終了する前に) 素早くクリックして、パスワードを入力してロックを解除してください。以下のようにウィンドウ id が出力されます:
xwininfo: Window id: 0x1800001 (has no name)
取得できたウィンドウ id を使って picom から除外するには:
$ picom <any other arguments> --focus-exclude 'id = 0x1800001'
もしくは、設定ファイルを使う場合:
focus-exclude = "id = 0x1800001";
dwm のステータスバーは picom の関数から検出されず、自動的にウィンドウマネージャのエレメントが除外されることはありません。また、dwm のステータスバーと dmenu のどちらもウィンドウ id は固定されていません。ステータスバーがウィンドウ透過しないようにしたい場合、ソースコードのウィンドウクラスにパッチをあてるか、他の属性を使って除外してください。dmenu と dwm のステータスバーを上部に表示している場合、位置によって指定することができます:
$ picom <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 のマスタースタックにある全てのウィンドウにマッチします)。
xsetroot で背景色が変えられない
現在、picom は xsetroot
の -solid
オプションと互換性がありません。解決方法としては hsetroot を使って背景色を設定するようにしてください:
$ hsetroot -solid '#000000'
詳しくは https://github.com/chjj/picom/issues/162 を参照。
AMD の Catalyst ドライバーを使ってる場合に画面に問題が発生する
次の引数を付けて picom を起動するか:
--backend xrender
picom.conf
ファイルに以下を追加してください:
backend = "xrender";
詳しくは https://github.com/chjj/picom/issues/208 を参照。
nvidia ドライバーを使っている場合に CPU 消費量が跳ね上がる
--backend glx
を使用した場合に CPU の使用量が高くなったり --vsync
を有効にしているとティアリングが発生する場合、NVIDIA に書かれているように nvidia-libgl[リンク切れ: 置換パッケージ: nvidia-utils] をインストールしてください。
nvidia ドライバーを使っている場合にデーモン化しようとするとエラーが発生する
picom をバックグラウンドで起動しようとすると main(): Failed to create new session.
エラーが表示される場合 picom-garnetius-gitAUR[リンク切れ: パッケージが存在しません] を使ってください。上流にマージされていないパッチが当てられています。
xft フォントを使用した場合にラグが発生する
xterm や urxvt などのアプリケーションで Xft フォントを使用した場合に酷いラグが発生する場合、以下のオプションを使ってみてください:
--xrender-sync --xrender-sync-fence
もしくは xrender バックエンドを使ってみてください。
詳しくは [1] を参照。