Ink

Contents related to tech, hobby, etc

XMonadのManageHook表記順番について

|

XMonadのManageHook表記順番について

ManageHook は、XMonadの重要な要素の一つで、ウィンドウ毎に 設定をしたり Xモナド のアクションを実行したりするためのもの。

やりたかったこと

条件に一致するウィンドウをFloat化し、レイアウトを調節する。

ポイント: 順序に気をつける

ポイントは、 ManageHookの中身にEndoが使われている ことです。 Endoは、関数のモノイドを提供するためのラッパーで、これは 結合に . (関数合成)を用います。 (参考: Haskellerのためのモノイド完全ガイド)

これはつまり、二つの ManageHook a ::ManageHook / b ::ManageHook があった場合、これをモノイドとして結合 (e.g. a <> b) した 際の実行順序は後ろからかけた方(例の場合は b) が先に実行されるということです。

なので、「Float化してからレイアウト調整する」のであれば 先にFloatさせる = 先に doFloat する

眠いのでちょっとあとでまた整理するかもzzz