xmonad-contrib-0.15: Third party extensions for xmonad

Copyright(c) 2009 Ilya Portnov (c) 2018 Campbell Barton
LicenseBSD3-style (see LICENSE)
MaintainerCampbell Barton <ideasman42@gmail.com>
Safe HaskellNone




Provides Column layout that places all windows in one column. Each window is half the height of the previous, except for the last pair of windows.

Note: Originally based on Column with changes:

  • Adding/removing windows doesn't resize all other windows. (last window pair exception).
  • Minimum window height option.


This module defines layout named BinaryColumn. It places all windows in one column. Windows heights are calculated to prevent window resizing whenever a window is added or removed. This is done by keeping the last two windows in the stack the same height.

You can use this module by adding following in your xmonad.hs:

import XMonad.Layout.BinaryColumn

Then add layouts to your layoutHook:

myLayoutHook = BinaryColumn 1.0 32 ||| ...

The first value causes the master window to take exactly half of the screen, the second ensures that windows are no less than 32 pixels tall.

Shrink/Expand can be used to adjust the first value by increments of 0.1.

  • 2.0 uses all space for the master window (minus the space for windows which get their fixed height).
  • 0.0 gives an evenly spaced grid. Negative values reverse the sizes so the last window in the stack becomes larger.