Compiz

提供: ArchWiki
2017年1月29日 (日) 00:36時点におけるKusakata (トーク | 投稿記録)による版 (文字列「[[zh-CN:」を「[[zh-hans:」に置換)
ナビゲーションに移動 検索に移動

関連記事

Wikipedia より:

Compiz は X Window System 上で動作するコンポジット型ウィンドウマネージャである。OpenGL を利用した 3D 技術により様々な画面効果を可能にしている。最小化アニメーションやキューブ型のワークスペースなどの効果は、ローダブルプラグインとして実装されている。

目次

インストール

Compiz には2つのバージョンが存在します。0.8 シリーズは C で書かれており 0.9 シリーズは C++ によって完全に書き直されています。2016年8月現在、どちらのシリーズも活発な開発が続いています。Compiz 0.9 は Launchpad の Compiz メンテナ によって開発されている一方、Compiz 0.8 の開発は GitHub の Compiz Reloaded プロジェクト によって行われています。2つのシリーズを同時に両方ともインストールすることはできません。

0.9 シリーズのインストール

ヒント: Compiz 0.9.8 以後、全ての Compiz コンポーネント (例: CCSM, プラグイン) は一つのプロジェクトとして開発・配布されています。つまり一つのパッケージで Compiz のコンポーネントを全て補うことができます。
  • Compiz — CCSM, プラグイン, GTK ウィンドウデコレータが付属する OpenGL コンポジットウィンドウマネージャ。
https://launchpad.net/compiz || compizAUR

0.8 シリーズのインストール

ノート: GTK ウィンドウデコレータは compiz-coreAUR から分割された compiz-gtkAUR パッケージに含まれています。

必須:

  • Compiz Core — OpenGL コンポジットウィンドウマネージャ。
https://github.com/compiz-reloaded/compiz/ || compiz-coreAUR

推奨:

  • CompizConfig Settings Manager — Compiz のグラフィカル設定マネージャ。
https://github.com/compiz-reloaded/ccsm || ccsmAUR
  • Compiz Fusion Plugins Main — Compiz の主要プラグインコレクション。
https://github.com/compiz-reloaded/compiz-plugins-main || compiz-fusion-plugins-mainAUR
  • Compiz Fusion Plugins Extra — Compiz の追加プラグインコレクション。
https://github.com/compiz-reloaded/compiz-plugins-extra || compiz-fusion-plugins-extraAUR

任意:

  • Compiz Fusion Plugins Experimental — 実験的な Compiz プラグイン (バージョン 0.8.12 以前の名前は Plugins Unsupported)。
https://github.com/compiz-reloaded/compiz-plugins-experimental || compiz-fusion-plugins-experimentalAUR

追加パッケージ

ノート: Emerald は 0.8.12 から、Fusion Icon は 0.1.2 から Compiz 0.8 だけでなく Compiz 0.9 にも対応しています。古い Emerald 0.9.5 リリースを使っている Compiz 0.9 ユーザーは 0.8 シリーズの Emerald 0.8.12 以上に切り替えることを推奨します。Emerald 0.9 の開発は停滞しているためです。
  • Emerald — Compiz のスタンドアロンウィンドウデコレータ。
https://github.com/compiz-reloaded/emerald || emeraldAUR
  • Emerald Themes — Emerald ウィンドウデコレータの追加テーマ。
https://github.com/compiz-reloaded/emerald-themes || emerald-themesAUR
  • Fusion Icon — Compiz を起動してウィンドウマネージャやデコレータを切り替えるためのトレイアプレット。
https://github.com/compiz-reloaded/fusion-icon || fusion-iconAUR

Compiz を起動する

主要なプラグインを有効にする

ヒント: インストールした Compiz のパッケージによって、以下のプラグインが既に有効になっている可能性があります。

Compiz を起動する前に、ウィンドウマネージャとして基本的な挙動を提供するプラグインを有効にしてください。そうしないとウィンドウをドラッグしたり拡大・縮小したり、閉じることができなくなります。重要なプラグインは以下の通りです:

  • Window Decoration - ウィンドウの縁を表示 (#ウィンドウデコレーションセクションを参照)。
  • Move Window。
  • Resize Window。
  • Place Windows - ウィンドウの配置オプションを設定。
  • Application Switcher - Alt+Tab スイッチャを提供します (多数のアプリケーションスイッチャプラグインが存在します、例: Shift Switcher, Static Application Switcher など。スイッチャの中には Alt+Tab キーバインドを使わないものもあります)。

ビューポートを切り替えられるようにするには、以下のどれか一つを有効にしてください:

  • Desktop Cube & Rotate Cube - 各面がビューポートになっている回転キューブを提供します。
  • Desktop Wall - ビューポートが互い隣に整列されます (動きは CinnamonGNOME Shell でのワークスペース切り替えのアニメーションと似ています)。
  • Expo - マウスを左上の隅に移動した時に全てのビューポートとウィンドウのビューを作成します (このプラグインは単独で使うことも上2つのプラグインのどちらかと一緒に使うことも可能です)。

ウィンドウデコレーション

ヒント: テーマの選択と管理については Compiz 設定#ウィンドウ装飾テーマを見てください。

ウィンドウデコレータは縁のあるウィンドウを表示するプログラムです。Kwin や Xfwm などのウィンドウマネージャとは異なり、Compiz では3つのデコレータの中からどれか1つを選ぶことができます: GTK ウィンドウデコレータ, KDE ウィンドウデコレータ, Emerald です。GTK ウィンドウデコレータと KDE ウィンドウデコレータは Compiz のソースに含まれており Compiz をビルドするときにオプションでコンパイルすることができます。一方で Emerald はスタンドアロンのデコレータです。CCSM で Window Decoration プラグインを有効にしないとウィンドウデコレータは起動しません。

デコレータの選択

Effects -> Window Decoration -> Command で指定したウィンドウデコレータが起動します。コマンドは次のうちどれかになります: emerald, gtk-window-decorator, kde4-window-decorator。デコレータの指定だけでは足りない場合は --replace スイッチを使ってください (例: emerald --replace)。

ヒント: Compiz 0.9 では、デフォルトでデコレータコマンドが compiz-decorator に設定されます。emerald, gtk-window-decorator, kde4-window-decorator をこの順番で検索して最初に見つけたデコレータを起動するスクリプトです。

Compiz の起動コマンド

ノート: Compiz のバージョンによっては起動時に CCP プラグインを手動でロードする必要があります: compiz --replace ccp [1]

次のコマンドで Compiz を起動できます:

$ compiz --replace

他のオプションは compiz --help を見てください。

fusion-icon を使う

ヒント: デスクトップ環境で Compiz を自動起動する場合、compiz の代わりに fusion-icon をデフォルトコマンドとして設定します。

次のコマンドで fusion-icon を起動することができます:

$ fusion-icon

fusion-icon が Compiz を起動することを確認するには、パネルのアイコンを右クリックして 'select window manager' を見てください。'Compiz' が選択されていない場合は選択してください。

デスクトップ環境で Compiz を自動起動する

デスクトップ環境#カスタムウィンドウマネージャを見てください。

Compiz をスタンドアロンのウィンドウマネージャとして使う

ディスプレイマネージャでセッションを起動する

スタンドアロンの Compiz セッションをディスプレイマネージャから起動することができます。大抵のディスプレイマネージャ (LightDM など) では compiz (必要であればコマンドラインオプションを付けてください) あるいは fusion-icon を実行する .desktop ファイルを /usr/share/xsessions に作成するだけで起動できるようになります。使用しているディスプレイマネージャの記事を見てください。.desktop ファイルの作成に関する情報はデスクトップエントリを参照。

ディスプレイマネージャの使用時にプログラムを自動起動する

ディスプレイマネージャから Compiz セッションを起動する場合、xprofile ファイルを使うことでセッションと一緒にプログラムを起動することが可能です。もしくは /usr/share/xsessions.desktop ファイルで compiz を直接起動するのではなく、他のプログラムを起動してから Compiz を起動するスクリプトを実行するという方法もあります。

startx でセッションを起動する

Compiz のセッションは startx で起動できます。.xinitrc ファイルに compiz または fusion-icon を記述してください。詳しくは xinitrc の記事を参照。

ルートメニューを追加

Openbox など他のスタンドアロンウィンドウマネージャにあるようなルートメニューを追加するために compiz-boxmenuAUR パッケージをインストールすることができます。このプログラムは compiz-deskmenuAUR のフォークです。変更点として、このフォークにはウィンドウ一覧や最近のドキュメント一覧などの機能が追加されています。

compiz-boxmenuAUR パッケージのインストール後、以下のようにホームディレクトリに設定ファイルをコピーして下さい:

# cp -R /etc/xdg/compiz /home/username/.config
# chown -R username:group /home/username/.config/compiz

username はあなたのユーザー名に group はユーザーのプライマリーグループに置き換えて下さい。

次に、CCSM を開いて、'Commands' プラグインまで移動し 'Command line 0' に compiz-boxmenu コマンドを入力してください。'Key Bindings' タブでは、'Run command 0' を Control+Space に設定してください ('Grab key combination' オプションを使うことでこの手順を簡略化することが可能です)。

そして 'Viewport Switcher' プラグインのところまで行き 'Desktop-based Viewport Switching' タブをクリックして下さい。'Plugin for initiate action' を core に、'Action name for initiate' を run_command0_key に変更します。

これで Control+Space を押せばメニューが表示されるはずです。グラフィカルなメニューエディタを起動するには、'Edit' オプションをクリックするかターミナルで compiz-boxmenu-editor を実行してください。手動でメニューを編集したい場合は、お好きなエディタで次のファイルを開いて下さい: ~/.config/compiz/boxmenu/menu.xml。変更を適用するには、メニューの 'Reload' オプションをクリックする必要があります。

ユーザーにシャットダウン・再起動を許可

特権がないユーザーも systemctl poweroffsystemctl reboot などのコマンドは実行できるようにするべきです。CCSM の 'Commands' プラグインを使ってこれらのコマンドのキーボードショートカットを割り当てることができます。また、compiz-boxmenuAUR でコマンドのランチャーを作成することも可能です - 上記参照。シャットダウンに関する詳細は次の記事を見て下さい: ユーザーにシャットダウンを許可

Tips and tricks

ネイティブのウィンドウマネージャを復活させる

次のコマンドでデスクトップ環境のデフォルトのウィンドウマネージャに戻ることが可能です:

wm_name --replace

wm_namekwin, metacity, xfwm4 などに置き換えて下さい。

Alt+F2 実行ダイアログを有効にする

GNOME Panel

CCSM で 'Gnome Compatibility' プラグインを有効にしてください。

MATE Panel

Compiz で MATE Panel の実行ダイアログを有効にする方法は2つあります。どちらか選べます:

  • CCSM で MATE Compatibility プラグインを有効にする (MATE プラグインが存在しない古いバージョンの Compiz では Gnome Compatibility プラグインを使ってください)。
  • CCSM の Commands プラグインを使って下のコマンドを Alt+F2 キーコンビネーションにマップする。
mate-panel --run-dialog
LXDE Panel

CCSM の 'Commands' プラグインを使って下のコマンドを Alt+F2 キーコンビネーションにマップしてください。

lxpanelctl run
Xfce Appfinder

Compiz を Xfce セッションで使う場合、実行ダイアログ (xfce4-appfinder) は何も設定しなくても動作します。スタンドアロンで Xfce Appfinder を使う場合、CCSM の Commands プラグインを使って Alt+F2 キーに以下のコマンドをマップしてください:

xfce4-appfinder --collapsed
他の実行ダイアログ

CCSM の Commands プラグインを使って実行ダイアログのコマンドを Alt+F2 キーに割り当ててください。

ウィンドウを最大化したときにタイトルバーを表示しない

こちら にあるように ccsm --> Effects の Window Decoration --> Decoration Windowsany!state=maxvert に変更してください。

トラブルシューティング

Missing GLX_EXT_texture_from_pixmaps

ATI カード (解決方法1)

ATI カードで Compiz を実行しようとすると以下のエラーが表示されることがあります:

Missing GLX_EXT_texture_from_pixmap

これは Compiz のバイナリが ATI の OpenGL ライブラリでなくて Mesa の OpenGL ライブラリを使ってコンパイルされているのが原因です。

まず、ATI のドライバーが上書きしないようにライブラリをディレクトリにコピーしてください:

$ install -Dm644 /usr/lib/libGL.so.1.2 /usr/lib/mesa/libGL.so.1.2

それから fglrx ドライバーを再インストールしてください。そして以下のようにして Compiz を起動してみましょう:

LD_PRELOAD=/usr/lib/mesa/libGL.so.1.2 compiz --replace ccp &

ATI カード (解決方法2)

ATI カードの 'GLX_EXT_texture_from_pixmap' の問題としてカードが直接レンダリングできないということも考えられます。その場合、以下のように libgl にオプションを指定する必要があります:

LIBGL_ALWAYS_INDIRECT=1 compiz --replace ccp &

この解決方法は次のカードでテスト済みです: ATI Technologies Inc Radeon R250 [Mobility FireGL 9000] (rev 02)。

Intel チップ

まず、i810 ではなく intel ドライバーが使われていることを確認してください。次に、以下のコマンドを実行して Compiz を起動してください (毎回このコマンドを使う必要があります):

LIBGL_ALWAYS_INDIRECT=true compiz --replace --sm-disable ccp &

NVIDIA バイナリドライバで Compiz が起動したウィンドウに縁がない

まず、ウィンドウデコレータの設定が正しいことを確認してください - 次を参照: #ウィンドウデコレーション。それでもウィンドウの縁が表示されない場合は Option "AddARGBGLXVisuals" "True"Option "DisableGLXRootClipping" "True"/etc/X11/xorg.conf.d/20-nvidia.conf の "Screen" セクションに追加してみてください。このオプションでもウィンドウの縁がロードされない場合、/etc/X11/xorg.conf.d/ で他の Option を使っているときは、それらをコメントアウトして上記の ARGBGLXVisuals と GLXRootClipping オプションだけを使用するようにしてください。

NVIDIA バイナリドライバでサスペンドから復帰したときに画面が表示されない

復帰時に黒画面と動くカーソルが現れる場合、垂直同期を無効にしてみてください。無効にするには、CCSM を開いて、'OpenGL' プラグインのところまで行って 'Sync to VBlank' オプションのチェックを外して下さい。

高性能なグラフィックカードでパフォーマンスが悪い

NVIDIA と Intel チップ: 設定が全て正しいはずなのにエフェクトでパフォーマンスが出ない場合、CCSM > General Options > Display Settings > Detect Refresh Rate を無効にして手動で値を選択してみてください。

NVIDIA チップのみ: 'Detect Refresh Rate' でリフレッシュレートが不適切になるのはデフォルトで有効にされている 'DynamicTwinView' という名前のオプションがおそらく原因です。正確にはこのオプションはカードやディスプレイがサポートしている最大リフレッシュレートを報告する役割を負っています。/etc/X11/xorg.conf.d/20-nvidia.conf の "Device" もしくは "Screen" セクションに次の行を追加して、コンピュータを再起動することで 'DynamicTwinView' を無効にできます:

Option "DynamicTwinView" "False"

NVIDIA カードで画面がちらつく

この挙動を修正するには以下のファイルを作成してください:

/etc/modprobe.d/nvidia.conf
options nvidia NVreg_RegistryDwords="PerfLevelSrc=0x2222"

動画がちらつく

Compiz を使用しているときに動画にティアリングが発生する場合、CCSM で Workarounds プラグインを有効にしてみてください。有効にしたら、Workarounds で次のオプションを有効にしてください: Force complete redraw on initial damage, Force full screen redraws (buffer swap) on repaint

Intel Graphics を使っている場合で上記の方法で解決しないときは、Intel Graphics#ティアリングの解消を見てください。

#高性能なグラフィックカードでパフォーマンスが悪いも参照。

Compiz エフェクトが動作しない (GConf バックエンド)

gtk-window-decorator をインストールしている場合、GConf スキーマが正しくインストールされているか確認してください:

$ gconftool-2 -R /apps/compiz/plugins | grep plugins

全てのプラグインが表示されているか確認してください。表示されない場合、Compiz スキーマを手動でインストールしてみてください (このコマンドは root で実行しないでください):

$ gconftool-2 --install-schema-file=/usr/share/gconf/schemas/compiz-decorator-gtk.schemas

fusion-icon が起動しない

コマンドラインから以下のような出力がされる場合:

$ fusion-icon
* Detected Session: gnome
* Searching for installed applications...
Traceback (most recent call last):
  File "/usr/bin/fusion-icon", line 57, in <module>
    from FusionIcon.interface import choose_interface
  File "/usr/lib/python2.5/site-packages/FusionIcon/interface.py", line 23, in <module>
    import start
  File "/usr/lib/python2.5/site-packages/FusionIcon/start.py", line 36, in <module>
    config.check()
  File "/usr/lib/python2.5/site-packages/FusionIcon/util.py", line 362, in check
    os.makedirs(self.config_folder)
  File "/usr/lib/python2.5/os.py", line 172, in makedirs
    mkdir(name, mode)
OSError: [Errno 13] Permission denied: '/home/andy/.config/compiz'

問題は ~/.config/compiz/ のパーミッションです。修正するには、次のコマンドを使って下さい:

# chown -R username /home/username/.config/compiz/

Alt+F4 キーバインドが動作しない (Xfce)

Compiz はログイン時に Xfwm4 を置き換えるため、Alt+F4 キーバインドが使えなくなってしまうことがあります。この問題を回避するには、ログイン時に Compiz だけが起動するようにしてください。Xfce#デフォルトウィンドウマネージャを見てください。

テーマを選択すると Emerald がクラッシュする

特定のテーマを選択すると Emerald がクラッシュする場合 (特にレガシーなエンジンを使用するテーマの場合)、Emerald のテーママネージャで他のテーマを選択して emerald --replace コマンドを実行してください。

Compiz の実行時にシステムベルが鳴らない

Compiz が実行していると (GNOME や MATE Terminal において行頭でバックスペースを押した時に再生される滴の音など) システムベルが鳴らないことに気づくかもしれません。上流のバグレポート を参照してください。

PulseAudio を使っている場合、PulseAudio でシステムベルを鳴らす方法があります。PulseAudio#X11 ベルイベントを参照。

Gnome Compatibility プラグインを有効にすると Compiz がクラッシュする (GSettings バックエンド)

GSettings バックエンドを使用している場合、Gnome Compatibility プラグインを有効にすると Compiz がクラッシュする可能性があります。CCSM から Preferences を開いてください。Integration の下にある Enable integration into the desktop environment のチェックを外してください。

最小化を解除したときにウィンドウのフォーカスが外れる

特定のウィンドウ (Chromium のウィンドウなど) で最小化を解除したときにフォーカスが外れることがあります。上流のバグレポート を見てください。Workarounds プラグインにある Keep previews of minimized windows オプションを有効にすることで解決できます。

ノート: Chrome/Chromium ブラウザを使用していて上記の方法を使う場合、Chrome の Use system title bar and borders オプションが有効になっていることを確認してください。Chrome の独自タイトルバーが使われていると Chrome を最小化したときにデスクトップが反応しなくなってしまいます。

Compiz を使っているとポップアップウィンドウがずれる

画面の下部にあるパネルのポップアップウィンドウが数ピクセルずれてパネルの上にウィンドウが表示されてしまうことがあります。この問題は Xfce と KDE で発生することが確認されており、他のデスクトップでも起こりえます。以下の方法で修正することができます:

  • パネルを画面の下部ではなく上部に配置する。これで大抵の場合は問題が解決します。
  • Place Windows プラグインを無効化する。Xfce Whisker Menu プラグインではこれで治ります。
  • ウィンドウの配置を固定する。Place Windows プラグインで設定できます。例えば Whisker Menu の場合、Whisker Menu というタイトルのウィンドウを (-1, -1) に表示するよう指定します。

詳しくは 上流のバグレポート を見てください。

Alt-Tab スイッチャの背景が表示されない (Emerald)

Emerald を使っている場合 (staticswitcher や switcher プラグインに入っている) Alt-Tab スイッチャの背景が完全に透過してしまうことがあります。デスクトップの背景とウィンドウのサムネイルが区別し難くなります。Compiz 0.9.12 (revision 3975) 現在、解決方法が存在します。CCSM から使用しているプラグインの Application Switcher または Static Application Switcher を開いてください。前者の場合、General の下に Background 設定が、後者の場合、Appearance の下に設定が存在します。設定を見つけたら、Set background color ボックスのチェックを入れてください。デフォルトでは灰色ですが変えることができます。

もしくは、Emerald ではなく GTK ウィンドウデコレータを使用するか shift switcher などの別のウィンドウスイッチャを使用してください。GTK ウィンドウデコレータでも、上記の方法で背景色は変えられます。

既知の問題

Compiz 0.8 にあるプラグインが Compiz 0.9 には存在しない

Compiz 0.8 で人気のあったプラグインの中には Compiz のバージョン 0.9.8 以降では OpenGL ES のサポートのために使えなくなっているものがあります。Animations Add-On プラグインなど、Compiz 0.9.13.0 リリースから再度使えるようになったプラグインも存在しますが、全てのプラグインが使えるわけではありません。この問題については将来のリリースでパッチが適用されればまた使えるようになる可能性があります。詳しくは Compiz 0.9.8 のリリースノート を見てください。

同じ理由で、Compiz Plugins Unsupported (Atlantis などのプラグインが含まれているパッケージ) は最近のバージョンの Compiz 0.9 で使えません。Compiz 0.9.5 から Compiz 0.9 シリーズでは開発されなくなっています。

ウィンドウがビューポートを変更した時に Xfce パネルのウィンドウボタンが更新されない

ウィンドウタイトルを右クリックして 'Move to Workspace Right' などのオプションを選択すると、ウィンドウは動くのに、ビューポートを切り替えるまでウィンドウボタンはウィンドウが移動する前のビューポートに表示され続けることがあります。xfce4-panelxfce4-panel-compizAUR で置き換えることで問題は解決します。詳しくは 上流のバグレポート を参照してください。

D-Bus プラグインを有効にしたときに Compiz がクラッシュする

Cube プラグインなど特定のプラグインと一緒に D-Bus プラグインを有効にすると Compiz がクラッシュします。上流のバグレポート を参照してください。

ワークスペースページャとウィンドウボタンの問題

Compiz のビューポートと互換性のあるパネルやドックはあまりありません。互換性のないパネルやドックでは表示に問題が発生します。全てのワークスペースにウィンドウボタンが表示されたり、ワークスペースページャにワークスペースがひとつしか表示されなくなったりします。以下は動作に問題がないパネルのリストです:

Xfce ワークスペーススイッチャのアスペクト比がおかしい

Xfce Panel 4.11 以上で Compiz を使用すると、ワークスペースページャの横幅がワークスペースひとつ分しかないのに、Compiz 指定するビューポートの数によって、小さなバーに分かれてしまいます。この問題は xfce4-panelxfce4-panel-compizAUR で置き換えることで解決します。詳しくは 上流のバグレポート を参照。

参照