Chris Stryczynski

Software Developer / Consultant

Windows tiling manager 4K / large monitor friendly layout - XMonad layout

I’ve found windows tiling managers incredibly useful, previously using Awesome served me quite well. However as soon as I upgraded to a large 40" 4K monitor - it didn’t quite work as effectively.

I’ve switched to XMonad as it provides unlimited functionality. In fact the configuration file is a Haskell program - you can pretty much do anything imaginable as long as you can develop it. There is also a huge collection of modules available which provides all sorts of layouts and functionality.

I’ve created my own layout optimized for my workflow - which works wonderfully on a large monitor. It’s available at: https://github.com/chrissound/XMonadLayouts

I’ve used this layout extensively for the past 8 months, and I’m still adding additional functionality - it’s a breeze when using Haskell too (strong types, compile errors etc).


On to the actual layout now, the layout creates a single main column with two side columns. The two side columns have the windows vertically stacked.

It’s similar to https://hackage.haskell.org/package/xmonad-contrib-0.13/docs/XMonad-Layout-ThreeColumns.html but it does not “collapse” the columns if there is less then 3 windows.

Main features:

  • Main rectangle that is centered.
  • Additional rows can be added in the middle column.
  • Set a specific ratio between rows in the middle column can be set when there are two or three windows in the middle column.
  • Pin the left or right to have a maximum amount windows. (I usually have two left pinned windows). So for example you can pin the left column to only have a maximum of two windows, of which additional windows would accumulate on the right column.
  • Swop the left or right column with the middle column.
  • Swop or focus a window in the left or right column by the position in the column. For example you can focus the 3rd Window in the left column.
  • Set the left or right column width individually.
Here is a live demonstration: