はじめに
こんにちは、野村です。
今回は、imeの状態に従って壁紙の色を変えるスクリプトを紹介します。
fcitx専用です。xsetrootというツールを利用します。
Ubuntu16.4のTWMで動作を確認しています。
これを作ったイキサツは以下のとおり。
・当時、「デスクトップを極限までシンプルにしたい」と考えていた。
・なので、パネルのないウィンドウマネージャを使うことにした。
・でもimeの状態がわからないと不便。
・しかたなくimeツールバーを表示させていた
・それも邪魔に思えてきた。
・壁紙の色でimeの状態を判別できるようにすればいい!
スクリプト
以下のスクリプトをパスの通ったデレクトリに置いて実行権限を与えます。
#!/bin/sh
MEM=0
COM=0
while :
do
COM=`fcitx-remote`
if [ $COM -ne $MEM ]; then
case $COM in
0) xsetroot -solid gray10 ;;
1) xsetroot -solid gray30 ;;
2) xsetroot -solid gray60 ;;
esac
MEM=$COM
fi
sleep 1s
done
以上のスクリプトをX起動時に実行されるようにします。
~/.xinitrcなどに記述するといいと思います。
解説
fcitx-remote
fcitxをコマンドラインから制御するツールです。
オプションなしで実行すると、imeの状態が数値で表示されます。
xsetroot
ルートウィンドウの設定を行うためのコマンドです。
背景色の変更だけではなく、背景画像の設定も行えます。
最後に
以上、imeの状態に従って壁紙の色を変えるスクリプトを紹介しました。
実際使ってみると、画面上にウィンドウが占める面積が狭いときは、IMEを操作するたびに背景色が変わるのがうるさいです。
なので、なるべく画面下部に少し隙間を開けるようにしてウィンドウを敷き詰めてから使うことをおすすめします。
僕の「デスクトップを極限までシンプルにしたい」という想いは、その後、GUIを捨てるまでに至りました。
数カ月しかもたなかったけど。
現在は、このスクリプトを使ってません。
普通にデスクトップ上にパネルを表示させています。
というわけで、今回はこれにて。