Fluxboxのstyleをランダムに選ぶスクリプト
バージョン1.0.0からFluxboxにはfluxbox-remoteというユーティリティが付属し、ターミナルやスクリプトからFluxboxにキーコマンドを送ることが出きるようになった。これによりターミナルからログアウトしたりstyleを変更したり、かなりのことが出きるようになった。キーコマンドについては日本語ではFluxbox Informationが詳しい。
デスクトップの壁紙は「fbsetbg -r directory」でランダムに選ぶことができるが、styleに関してはそのような仕組みは用意されていない。そこでfluxbox-remoteとPythonを使ってstyleを「/usr/share/fluxbox/styles」と「/home/tks/.fluxbox/styles」からランダムに一つ選び出し適用するスクリプト「randomstyle.py」を書いてみた。
randomstyle.py:
#!/usr/bin/env python # -*- coding: utf-8 -*- import os, glob, random styledir = "/usr/share/fluxbox/styles/*/theme.cfg" styledir2 = "/home/tks/.fluxbox/styles/*/theme.cfg" # get random style directory. style = random.choice([os.path.dirname(x) for x in glob.glob(styledir) + glob.glob(styledir2)]) # then change style os.system("fluxbox-remote 'setstyle " + style + "'")
このスクリプトは「/usr/share/fluxbox/styles/*/theme.cfg」と「/home/tks/.fluxbox/styles/*/theme.cfg」のパターンに一致するディレクトリからランダムにひとつ選び出して「style」に格納し、サブシェルで「fluxbox-remote 'setstyle 【styleの内容】'」を実行している。*1
「~/.fluxbox/init」で「session.screen0.allowRemoteActions」を「true」に設定し上記のスクリプトを実行すると、ランダムにstyleが変化する。
*1:ちなみにキーコマンドは大文字小文字を区別しないので「SETSTYLE」や「SetStyle」でもかまわない。