Fluxboxでrun-or-raise

ここ一週間程、Common Lispで書かれたWMであるStumpWMを使っていたのですが、まぁLispで貫かれている統一感が楽しい半面、Ratpoisonで感じた使いにくい状況下での使い辛さはやはり苦しいものがあって、結局またFluxboxに戻ってきてしまったのでした。

で、StumpWMで便利だなぁと思ったのが、run-or-raiseコマンドで「アプリが起動してたらそれを前面に、起動していなければ起動」というやつ。

Fluxboxでも同様のことができないかなぁ、と思ってマニュアルを眺めていたらできました。

Control w Control w :If {Some Matches (Navigator)} {NextWindow (Navigator)} {Exec firefox}
Control j Control j :If {Some Matches (gnome-terminal)} {NextWindow (gnome-terminal)} {Exec gnome-terminal}

のように:Ifとかの条件を使えるので、MatchesでWM_CLASSの値を検査してあげれば良いみたい。WM_CLASSの他にWM_NAMEとかも使えるらしいので、xpropで色々調べると良いでしょう。