xmonadで特定のプログラムだけフローティング

[`evernote` not found]
Bookmark this on Hatena Bookmark
Share on Facebook
LINEで送る

xmonadを使っていて,タイル配置するとレイアウトが壊れたり操作ボタンが隠れたりして使えないことがある.
そういったプログラムは,フローティングするのが良い.
しかしSuper+クリックで配置後にフローティングしてもウィンドウサイズをリサイズしてくれないため操作ボタンが出てこないことが多々ある.
そういう場合は,最初から特定のプログラムをフローティングで起動するように設定するのが良い.

クラス名を調べる

以下のコマンドで,xpropを使ってコンソールにウィンドウの情報を取得できるようにする.
クラス名だけフィルタしても良い.
このコマンドを実行するとマウスポインタの形状が変わるので,対象のウィンドウをクリックすると情報を取得できる.

$ xprop | grep WM_CLASS

xmonadの設定

xmonadをdefaultConfigで起動している場合,<+>演算子で連結(?)すると良い.

main = do
    -- 略
    xmonad $ ewmh defaultConfig
    { -- 略
    , manageHook = myManageHook
    , -- 略
    }

myManageHook = manageHook defaultConfig <+> myManageHookFloat

myManageHookFloat = composeAll
    [ className =? "PATTERN1" --> doFloat
    , className =? "PATTERN2" --> doFloat
    ]