= タイル型配置いろいろ = ここでは具体的な実装方法などではなく、主にどういうものがあってそれぞれどう呼ばれているか、を整理する。 https://wiki.archlinux.org/index.php/Comparison_of_Tiling_Window_Managers#Management_style だいたいここから拾ってきて一言二言解説しているだけなので、こっちを読む方が有意義。この文章の目的は、どちらかというと書いている人自身の理解を深めること。気が向いたら図でも追加するかもしれない。 == v-stack(vertical stack) == dwmのデフォルト(関数名で言うと`tile()`)。画面を大きく左右二つに分割し、左側に一つのウィンドウ(master)、右側に残りのウィンドウを積み重ねるように(stack)配置する。masterとstackの左右比率は変更可能。また、master側に置くウィンドウ数が1以上の変種(いわゆるnmaster。上のArchWikiではnv-stackと呼ばれている)もある。 == h-stack(horizontal stack) == dwmのパッチにbottomstackというのがあるが、この中の`bstack()`がこれ。画面を大きく上下二つに分割し、上側に一つのウィンドウ(master)、下側に残りのウィンドウを積み重ねる(?)ように(stack?)配置する。要するにv-stackの水平版。やはりmasterとstackの左右比率は変更可能で、nmaster版もある。 == mirror == 説明を読む限り、v/h-stackにさらにもう一つスタックを追加して、masterを挟むように並べたものらしい。実物にお目にかかったことがないので良く分からない。 == max == 最大化。一つのウィンドウを画面一杯に表示する。dwmでいうところの`monocle()`。これメインだとタイル型とは言えなくなってしまうが、使えると便利。ステータスバーやウィンドウの枠などはあったりなかったりする。 == tab == タブブラウザのように、一つのウィンドウを画面一杯に表示する。maxとの違いはタブという機構の有無か。 == split == 現在の(フォーカスが当たっている)ウィンドウを水平あるいは垂直に分割する。screenとかtmux、あるいはvimとかemacsの分割はこのタイプ。かなり融通が効くが、やりすぎるとウィンドウ間の移動順序が意味不明になったりする。ウィンドウマネージャに適用するならば、ウィンドウが出る前から画面自体を分割しておくような形にすると昨今の高解像度モニタでは役に立つかもしれない(先に画面を分割しウィンドウサイズを制限しておくことで、巨大なウィンドウが出現するのを避けられる。大きすぎると逆に見辛くて困るようなものを使うときに有効だが、空白部分が不格好になってしまうのは仕方ない)。 == columns, rows == 名前からするとウィンドウを列、行に並べるもののようだが……力尽きたので詳しくは割愛。 == grid == グリッド状にウィンドウを配置する。同じものを多数並列に動かしながら監視するような状況では強いかもしれない。