コンポジットマネージャーのXcompmgrでウィンドウ透過設定

久々にMATE環境を使ってみています．
awesomeだとショートカットキーでウィンドウの配置を設定できるので簡単にウィンドウを並べ変えて動画を見ながら別のことをするといったことが簡単に出来ました．しかしMATEで同じことをしようとすると面倒．以前はGnome端末で背景を透過させていましたがこの機能はなくなっていました．

Bug 695371 – Transparent option disappears in 3.7.x

Gnome端末から無くなった後もMATE端末には透過機能が残っていましたがこちらからもいつの間にかなくなっていました．もう復活することは無さそうなので他の端末アプリを幾つか試してみましたが擬似透過しか見当たりません．

ということで今回はXcompmgrを試してみました．

xorg/app/xcompmgr – Compositing manager using RENDER

前提

xorgでComposite, RENDER が有効になっている必要がああります．以下OKの例．

$ xdpyinfo | grep -i "render\|composite"

Composite

RENDER

必要パッケージの導入

コンポジットマネージャーのxcompmgrと，透過の設定をするtranssetの含まれたx11-appsを導入します．

$ sudo apt install xcompmgr x11-apps

コンポジットマネージャの起動

$ xcompmgr -c &

とか

$ xcompmgr -cf &

とか

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

とかお好みで．

transsetでの透過

xcompmgrが起動した状態でtranssetを使うとウィドウを透過させることが出来ます．
引数には0~1の値を設定します．0が完全に透明．1が不透明です．

$ transset 0.6

として実行するとマウスカーソルが+マークになり，クリックしたウィンドウが透過されます．
以下はブラウザフルスクリーンでニコ生を再生した上に透過設定したMATE端末を表示しています．

自動起動設定

毎回手動で起動&設定するのは面倒なのでこんな感じで自動起動設定をします．
コンポジットマネージャーは「システム」->「設定」>「ユーザ向け」->「自動起動するアプリ」から．

MATE端末の透過設定は~/.bashrcに以下のように書いてbash起動時にMATE端末だったらtranssetを起動するようにしてみました．sleepを付けないとうまく動きませんでした．sleepの値は環境によって変わると思います．

$ tail -4 ~/.bashrc

case "$COLORTERM" in

mate-terminal) sleep 0.3 && transset -a 0.6 > /dev/null;;

esac﻿

ショートカット設定

MATE端末だけを透過設定する場合はここまでの設定で大丈夫ですが，他のウィンドウや透過度を変更するのにショートカット設定をしておくと便利そうです．

「システム」->「設定」->「ハードウェア」->「キーボードショートカット」でtranssetを登録してショートカットを設定します．

ここで設定したtranssetのオプションは-aはアクティブウィンドウの指定，--inc/--decはインクリメント，デクリメントのオプションです．

これで未設定のアプリで透過させたり，ちょっと透過度を調整したいと行った時にショートカットですぐ設定できるようになりました :)