# Xcompmgr (日本語)

関連記事

- Compiz
- Cairo Compmgr
- Compton

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

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

## インストール

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

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

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

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

- xcompmgr-dana — Xcompmgr の最初期のフォークのひとつ。

  http://oliwer.net/xcompmgr-dana/ || xcompmgr-dana

- xcompmgr_tint2 — Tint2 で完全透過を有効にするパッチが含まれている Xcompmgr のフォーク。

  http://www.freedesktop.org/wiki/Software/xapps || xcompmgr_tint2-git

- Compton — 多くの修正が含まれている Xcompmgr のフォーク。

  https://github.com/chjj/compton || compton-git

## 設定

`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]

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

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

## Tips and tricks

### 要求に応じて 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

Warning: このフィックスはコンポジット効果を無効にします。

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

This is fixed by installing 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 で画面が更新されない

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

これを修正するには、公式リポジトリから hsetroot をインストールして `.xinitrc` で `xcompmgr` の直前に次の行を追加してください:

    hsetroot -solid "#000066"

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

Categories:

- X Server (日本語)
- Eye candy (日本語)