StumpWM 上でもうひとつ WM 動作
数カ月ぶりのブログ更新です。
ほんとは大学院の公聴会が終わったら直ぐに更新しようと思っていたんですが、面倒臭がってグダグダしてしまいました。
今回は StumpWM 上で GUI アプリをつくろうと思った時に Window が目一杯のサイズで出てくるのが鬱陶しかったため、開発用に WM を動かすことにしました。以前から目をつけていたんですが、やはりメンドクサクて放置。そして必要にかられて今回挑戦したわけです。
殆ど タイル型 window manager だけどウィンドウを float 制御したい という記事を使いました。異なる点といえば openbox を使用するように変更した事と、run-or-raise の恩恵をあずかるようにしたくらいです。
Xephyr, openbox 導入
$ sudo aptitude install xserver-xephyr openbox
floatwm.sh
#!/bin/sh ~/stumpwm/contrib/stumpish gnew openbox Xephyr -ac -br -fullscreen -host-cursor -class xephyr :1 & sleep 1 DISPLAY=:1 openbox &
kill_openbox.sh
#!/bin/sh ~/stumpwm/contrib/stumpish gselect openbox ~/stumpwm/contrib/stumpish gkill killall Xephyr
.stumpwmrc
(defcommand float-openbox () () (run-or-raise "/path/to/bin/floatwm.sh" '(:class "Xephyr"))) (defcommand kill-float-openbox() () (run-or-raise "/path/to/bin/kill_openbox.sh" '(:class "kill-openbox")))
ほんとに修正したところは少ないですが、コレでグループ切り替えしつつ openbox を起動できます。勿論 run-or-raise してるので 2 回目以降の float-window コマンドでは既に開いている openbox Group にフォーカスを移します。また、kill-float-window で openbox Group を Xephyr 毎切れます。