xmonad で狙った位置にフロートウィンドウを表示する
すごく簡単そうなのになかなかやり方が (日本語で) 見つからなかったので
備忘録的にメモ。
使うもの
XMonad.Util.NamedScratchpad
http://xmonad.org/xmonad-docs/xmonad-contrib/XMonad-Util-NamedScratchpad.html
設定
まずはインポートになければ追加。
import XMonad.StackSet as W import XMonad.ManageHook import XMonad.Util.NamedScratchpad
今回は試しに Thunderbird のメッセージ作成ウィンドウを
画面の右端に高さは上下 (ほぼ) 最大、
幅は 70 文字程度を確保する設定です。
customFloating に表示位置や長さを渡してやるので
doXXXFloat = customFloating $ W.RationalRect (表示 X 位置) (表示 Y 位置) (幅) (高さ)
とつくっていくので、
myManageHook = composeAll [ className =? "Thunderbird" <&&> resource =? "Msgcompose" --> doRightFloat , resource =? "kdesktop" --> doIgnore ] where doRightFloat = customFloating $ W.RationalRect (4.5/6) (0.1/6) (1/4) (4.9/5) -- 左上から x y 幅 高
のように
- X
ほぼ最大にして一番右へ。ウィンドウサイズ分加減。 - Y
一番上からでいいのでほぼ 0。 xmobar のサイズ分加減。 - 幅
70 文字程度がちょうど 1/4。 - 高さ
画面上から下まで最大で使いたいのでほぼ 1。xmobar サイズ分加減。
して使いました。
位置やサイズを変えてやれば
画面下に表示したり、中央に表示したりできますね。