「Xcompmgr」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
 
(Pkg/AUR テンプレートの更新)
(3人の利用者による、間の11版が非表示)
4行目: 4行目:
 
[[es:Xcompmgr]]
 
[[es:Xcompmgr]]
 
[[ru:Xcompmgr]]
 
[[ru:Xcompmgr]]
[[zh-CN:Xcompmgr]]
+
[[zh-hans:Xcompmgr]]
 
{{Related articles start}}
 
{{Related articles start}}
 
{{Related|Compiz}}
 
{{Related|Compiz}}
{{Related4|Cairo Compmgr}}
+
{{Related|Cairo Compmgr}}
{{Related4|Compton}}
+
{{Related|Picom}}
 
{{Related articles end}}
 
{{Related articles end}}
   
[http://cgit.freedesktop.org/xorg/app/xcompmgr/ Xcompmgr] はシンプルな[[Wikipedia:ja:コンポジット型ウィンドウマネージャ|コンポジットマネージャ]]で、ドロップシャドウを表示したり、'''transset''' ユーティリティを使うことで、プリミティブなウィンドウ透過ができます。単独の概念実証として作られており、Xcompmgr は Compiz などのコンポジットマネージャの軽量な代替として使うことができます。
+
[https://cgit.freedesktop.org/xorg/app/xcompmgr/ Xcompmgr] はシンプルな[[Wikipedia:ja:コンポジット型ウィンドウマネージャ|コンポジットマネージャ]]で、ドロップシャドウを表示したり、''transset'' ユーティリティを使うことで、プリミティブなウィンドウ透過ができます。単独の概念実証として作られており、Xcompmgr は Compiz などのコンポジットマネージャの軽量な代替として使うことができます。
   
既存のウィンドウマネージャを置き換えないので、エレガントなデスクトップを模索している、軽量な[[Window Manager|ウィンドウマネージャ]]のユーザーにとっては理想的です。
+
既存のウィンドウマネージャを置き換えないので、エレガントなデスクトップを模索している、軽量な[[ウィンドウマネージャ]]のユーザーにとっては理想的です。
   
 
== インストール ==
 
== インストール ==
Xcompmgr をインストールする前に、[[Xorg|Xorg]] を正しくインストール・設定してください。カスタム設定を使っている場合、X サーバーの [[Xorg#コンポジット|Composite]] エクステンションを有効にしてください。
+
Xcompmgr をインストールする前に、[[Xorg]] を正しくインストール・設定してください。カスタム設定を使っている場合、X サーバーの [[Xorg#コンポジット|Composite]] エクステンションを有効にしてください。
   
 
Xcompmgr は[[公式リポジトリ]]の {{Pkg|xcompmgr}} パッケージから[[Pacman|インストール]]できます。透過を行うには[[公式リポジトリ]]から {{Pkg|transset-df}} もインストールしてください。
 
Xcompmgr は[[公式リポジトリ]]の {{Pkg|xcompmgr}} パッケージから[[Pacman|インストール]]できます。透過を行うには[[公式リポジトリ]]から {{Pkg|transset-df}} もインストールしてください。
22行目: 22行目:
 
=== フォークと更新されたバージョン ===
 
=== フォークと更新されたバージョン ===
 
バグフィックスなどがされた、フォークが複数存在しています:
 
バグフィックスなどがされた、フォークが複数存在しています:
* {{App|xcompmgr-dana|Xcompmgr の最初期のフォークのひとつ。|http://oliwer.net/xcompmgr-dana/|{{AUR|xcompmgr-dana}}}}
+
* {{App|xcompmgr-dana|Xcompmgr の最初期のフォークのひとつ。|http://oliwer.net/xcompmgr-dana/|{{AUR|xcompmgr-dana}}{{Broken package link|{{aur-mirror|xcompmgr-dana}}}}}}
* {{App|xcompmgr_tint2|[[Tint2]] で完全透過を有効にするパッチが含まれている Xcompmgr のフォーク。|http://www.freedesktop.org/wiki/Software/xapps|{{AUR|xcompmgr_tint2-git}}}}
+
* {{App|[[Picom]]|多くの修正が含まれている Xcompmgr のフォーク。|https://github.com/chjj/compton|{{AUR|picom-git}}}}
* {{App|[[Compton]]|多くの修正が含まれている Xcompmgr のフォーク。|https://github.com/chjj/compton|{{AUR|compton-git}}}}
 
   
 
== 設定 ==
 
== 設定 ==
30行目: 29行目:
 
$ xcompmgr -c
 
$ xcompmgr -c
   
セッションの起動時にロードするには、次を [[xprofile|xprofile]] に追加してください:
+
セッションの起動時にロードするには、次を [[xprofile]] に追加してください:
 
xcompmgr -c &
 
xcompmgr -c &
   
43行目: 42行目:
   
 
プログラムウィンドウの透過を設定するには、プログラムを予め実行して、次を実行してください:
 
プログラムウィンドウの透過を設定するには、プログラムを予め実行して、次を実行してください:
$ transset-df [opacity]
+
$ transset-df ''opacity''
{{ic|opacity}} は '''0''' から '''1''' の間の数値に置き換えてください。0 は透明で 1 は不透明です。
+
{{ic|opacity}} は ''0'' から ''1'' の間の数値に置き換えてください。0 は透明で 1 は不透明です。
   
 
コマンドを実行すると、マウスカーソルが十字線になります。ウィンドウをクリックすれば透明度が指定された値に変更されます。例えば、{{ic|transset-df 0.25}} はウィンドウの不透明度を 25% (透明度 75%) に設定します。
 
コマンドを実行すると、マウスカーソルが十字線になります。ウィンドウをクリックすれば透明度が指定された値に変更されます。例えば、{{ic|transset-df 0.25}} はウィンドウの不透明度を 25% (透明度 75%) に設定します。
   
  +
== ヒントとテクニック ==
== Tips and tricks ==
 
 
=== 要求に応じて Xcompmgr を起動・停止する ===
 
=== 要求に応じて Xcompmgr を起動・停止する ===
 
このスクリプトを使うことでコンポジットマネージャを簡単に(再)起動・停止できます。
 
このスクリプトを使うことでコンポジットマネージャを簡単に(再)起動・停止できます。
 
{{hc|~/.bin/comp|<nowiki>
 
{{hc|~/.bin/comp|<nowiki>
#!/bin/bash
+
#!/bin/bash
#
+
#
# Start a composition manager.
+
# Start a composition manager.
# (xcompmgr in this case)
+
# (xcompmgr in this case)
  +
 
comphelp() {
+
comphelp() {
echo "Composition Manager:"
+
echo "Composition Manager:"
echo " (re)start: COMP"
+
echo " (re)start: COMP"
echo " stop: COMP -s"
+
echo " stop: COMP -s"
echo " query: COMP -q"
+
echo " query: COMP -q"
echo " returns 0 if composition manager is running, else 1"
+
echo " returns 0 if composition manager is running, else 1"
exit
+
exit
}
+
}
  +
 
checkcomp() {
+
checkcomp() {
pgrep xcompmgr &>/dev/null
+
pgrep xcompmgr &>/dev/null
}
+
}
  +
 
stopcomp() {
+
stopcomp() {
checkcomp && killall xcompmgr
+
checkcomp && killall xcompmgr
}
+
}
  +
 
startcomp() {
+
startcomp() {
stopcomp
+
stopcomp
# Example settings only. Replace with your own.
+
# Example settings only. Replace with your own.
xcompmgr -CcfF -I-.015 -O-.03 -D6 -t-1 -l-3 -r4.2 -o.5 &
+
xcompmgr -CcfF -I-.015 -O-.03 -D6 -t-1 -l-3 -r4.2 -o.5 &
exit
+
exit
}
+
}
  +
 
case "$1" in
+
case "$1" in
"") startcomp ;;
+
"") startcomp ;;
"-q") checkcomp ;;
+
"-q") checkcomp ;;
"-s") stopcomp; exit ;;
+
"-s") stopcomp; exit ;;
*) comphelp ;;
+
*) comphelp ;;
esac</nowiki>
+
esac</nowiki>}}
}}
 
   
 
使いやすいように、このスクリプトを ([[Xbindkeys]] などを使って) ホットキーに設定することができます。これで他の作業を邪魔せずに、コンポジットを素早く再起動したり一時的に無効にできます。
 
使いやすいように、このスクリプトを ([[Xbindkeys]] などを使って) ホットキーに設定することができます。これで他の作業を邪魔せずに、コンポジットを素早く再起動したり一時的に無効にできます。
93行目: 91行目:
 
=== Xcompmgr の切り替え ===
 
=== Xcompmgr の切り替え ===
 
以下のスクリプトをホットキーに割り当てて下さい:
 
以下のスクリプトをホットキーに割り当てて下さい:
  +
{{bc|
#!/bin/bash
 
  +
#!/bin/bash
 
  +
if pgrep xcompmgr &>/dev/null; then
 
  +
if pgrep xcompmgr &>/dev/null; then
echo "Turning xcompmgr ON"
 
xcompmgr -c -C -t-5 -l-5 -r4.2 -o.55 &
+
echo "Turning xcompmgr ON"
  +
xcompmgr -c -C -t-5 -l-5 -r4.2 -o.55 &
else
 
  +
else
echo "Turning xcompmgr OFF"
 
pkill xcompmgr &
+
echo "Turning xcompmgr OFF"
  +
pkill xcompmgr &
fi
 
  +
fi
 
  +
exit 0
 
  +
exit 0
  +
}}
   
 
== トラブルシューティング ==
 
== トラブルシューティング ==
116行目: 116行目:
 
=== (Openbox などで) ログイン後に背景が一時的にライトグレーになる ===
 
=== (Openbox などで) ログイン後に背景が一時的にライトグレーになる ===
   
{{AUR|hsetroot}} をインストールして {{ic|xcompmgr}} の前に {{ic|hsetroot -solid "#000000"}} (''#000000'' にはあなたが使いたい色のコードを入力してください) を実行して背景色を設定することで修正できます。
+
{{Pkg|hsetroot}} をインストールして {{ic|xcompmgr}} の前に {{ic|hsetroot -solid "#000000"}} (''#000000'' にはあなたが使いたい色のコードを入力してください) を実行して背景色を設定することで修正できます。
   
 
=== awesome の BadPicture request ===
 
=== awesome の BadPicture request ===
   
[[awesome|awesome]] で以下のエラーが表示される場合:
+
[[awesome]] で以下のエラーが表示される場合:
error 163: BadPicture request 149 minor 8 serial 34943
+
error 163: BadPicture request 149 minor 8 serial 34943
error 163: BadPicture request 149 minor 8 serial 34988
+
error 163: BadPicture request 149 minor 8 serial 34988
error 163: BadPicture request 149 minor 8 serial 35033
+
error 163: BadPicture request 149 minor 8 serial 35033
[[Feh|Feh]] をインストールしてから [[awesome|awesome]] を再起動してください。
+
[[feh]] をインストールしてから [[awesome]] を再起動してください。
   
 
=== 解像度を変更した後に awesome で画面が更新されない ===
 
=== 解像度を変更した後に awesome で画面が更新されない ===
   
外部モニターを使っている場合、ディスプレイの解像度が自動的に変更された時に問題が発生することがあります: 画面の一部分が"動かなくなり"更新されなくなる現象です。この問題は [[awesome|awesome]] が [[Feh|Feh]] を使って背景を設定しているだけでなく初期の (Xcompmgr の起動前に実行される) 解像度変更を行っていることが原因です。
+
外部モニターを使っている場合、ディスプレイの解像度が自動的に変更された時に問題が発生することがあります: 画面の一部分が"動かなくなり"更新されなくなる現象です。この問題は [[awesome]] が [[feh]] を使って背景を設定しているだけでなく初期の (Xcompmgr の起動前に実行される) 解像度変更を行っていることが原因です。
   
これを修正するには、{{AUR|hsetroot}} をインストールして {{ic|.xinitrc}} で {{ic|xcompmgr}} の直前に次の行を追加してください:
+
これを修正するには、{{Pkg|hsetroot}} をインストールして {{ic|.xinitrc}} で {{ic|xcompmgr}} の直前に次の行を追加してください:
 
hsetroot -solid "#000066"
 
hsetroot -solid "#000066"
 
(''#000066'' はあなたが選んだ色に置き換えられます).
 
(''#000066'' はあなたが選んだ色に置き換えられます).

2019年12月10日 (火) 23:00時点における版

関連記事

Xcompmgr はシンプルなコンポジットマネージャで、ドロップシャドウを表示したり、transset ユーティリティを使うことで、プリミティブなウィンドウ透過ができます。単独の概念実証として作られており、Xcompmgr は Compiz などのコンポジットマネージャの軽量な代替として使うことができます。

既存のウィンドウマネージャを置き換えないので、エレガントなデスクトップを模索している、軽量なウィンドウマネージャのユーザーにとっては理想的です。

インストール

Xcompmgr をインストールする前に、Xorg を正しくインストール・設定してください。カスタム設定を使っている場合、X サーバーの Composite エクステンションを有効にしてください。

Xcompmgr は公式リポジトリxcompmgr パッケージからインストールできます。透過を行うには公式リポジトリから transset-df もインストールしてください。

フォークと更新されたバージョン

バグフィックスなどがされた、フォークが複数存在しています:

  • xcompmgr-dana — Xcompmgr の最初期のフォークのひとつ。
http://oliwer.net/xcompmgr-dana/ || xcompmgr-danaAUR[リンク切れ: アーカイブ: aur-mirror]
  • Picom — 多くの修正が含まれている Xcompmgr のフォーク。
https://github.com/chjj/compton || picom-gitAUR

設定

xcompmgr をロードするには、次を実行してください:

$ xcompmgr -c

セッションの起動時にロードするには、次を xprofile に追加してください:

xcompmgr -c &

-c の代わりにドロップシャドウを修正したりフェードを有効にするスイッチを使うことができます。例えば:

xcompmgr -c -C -t-5 -l-5 -r4.2 -o.55 &

オプションの完全な一覧を見るには、次を実行してください:

$ xcompmgr --help

ウィンドウ透過

パフォーマンスの低下のために、実用性は限られていますが、transset-df ユーティリティを使うことで個々のウィンドウの透明度を設定することができます。

プログラムウィンドウの透過を設定するには、プログラムを予め実行して、次を実行してください:

$ transset-df opacity

opacity0 から 1 の間の数値に置き換えてください。0 は透明で 1 は不透明です。

コマンドを実行すると、マウスカーソルが十字線になります。ウィンドウをクリックすれば透明度が指定された値に変更されます。例えば、transset-df 0.25 はウィンドウの不透明度を 25% (透明度 75%) に設定します。

ヒントとテクニック

要求に応じて Xcompmgr を起動・停止する

このスクリプトを使うことでコンポジットマネージャを簡単に(再)起動・停止できます。

~/.bin/comp
#!/bin/bash
#
# Start a composition manager.
# (xcompmgr in this case)

comphelp() {
    echo "Composition Manager:"
    echo "   (re)start: COMP"
    echo "   stop:      COMP -s"
    echo "   query:     COMP -q"
    echo "              returns 0 if composition manager is running, else 1"
    exit
}

checkcomp() {
    pgrep xcompmgr &>/dev/null
}

stopcomp() {
    checkcomp && killall xcompmgr
}

startcomp() {
    stopcomp
    # Example settings only. Replace with your own.
    xcompmgr -CcfF -I-.015 -O-.03 -D6 -t-1 -l-3 -r4.2 -o.5 &
    exit
}

case "$1" in
    "")   startcomp ;;
    "-q") checkcomp ;;
    "-s") stopcomp; exit ;;
    *)    comphelp ;;
esac

使いやすいように、このスクリプトを (Xbindkeys などを使って) ホットキーに設定することができます。これで他の作業を邪魔せずに、コンポジットを素早く再起動したり一時的に無効にできます。

Xcompmgr の切り替え

以下のスクリプトをホットキーに割り当てて下さい:

#!/bin/bash

if pgrep xcompmgr &>/dev/null; then
    echo "Turning xcompmgr ON"
    xcompmgr -c -C -t-5 -l-5 -r4.2 -o.55 &
else
    echo "Turning xcompmgr OFF"
    pkill xcompmgr &
fi

exit 0

トラブルシューティング

Flash が使われているサイトを開いた時に Mozilla Firefox がクラッシュする

次の行を含む /etc/profile.d/flash.sh という名前の実行可能ファイルを作成することで修正できます:

export XLIB_SKIP_ARGB_VISUALS=1
警告: このフィックスはコンポジット効果を無効にします。

(Openbox などで) ログイン後に背景が一時的にライトグレーになる

hsetroot をインストールして xcompmgr の前に hsetroot -solid "#000000" (#000000 にはあなたが使いたい色のコードを入力してください) を実行して背景色を設定することで修正できます。

awesome の BadPicture request

awesome で以下のエラーが表示される場合:

error 163: BadPicture request 149 minor 8 serial 34943
error 163: BadPicture request 149 minor 8 serial 34988
error 163: BadPicture request 149 minor 8 serial 35033

feh をインストールしてから awesome を再起動してください。

解像度を変更した後に awesome で画面が更新されない

外部モニターを使っている場合、ディスプレイの解像度が自動的に変更された時に問題が発生することがあります: 画面の一部分が"動かなくなり"更新されなくなる現象です。この問題は awesomefeh を使って背景を設定しているだけでなく初期の (Xcompmgr の起動前に実行される) 解像度変更を行っていることが原因です。

これを修正するには、hsetroot をインストールして .xinitrcxcompmgr の直前に次の行を追加してください:

hsetroot -solid "#000066"

(#000066 はあなたが選んだ色に置き換えられます).