This module can be used as follows:
import XMonad.Layout.GridVariants
Then add something like this to your layouts:
Grid (16/10)
for a 16:10 aspect ratio grid, or
SplitGrid L 2 3 (2/3) (16/10) (5/100)
for a layout with a 2x3 master grid that uses 2/3 of the screen,
and a 16:10 aspect ratio slave grid to its right. The last
parameter is again the percentage by which the split between master
and slave area changes in response to Expand/Shrink messages.
To be able to change the geometry of the master grid, add something
like this to your keybindings:
((modMask .|. shiftMask, xK_equal), sendMessage $ IncMasterCols 1),
((modMask .|. shiftMask, xK_minus), sendMessage $ IncMasterCols (-1)),
((modMask .|. ctrlMask, xK_equal), sendMessage $ IncMasterRows 1),
((modMask .|. ctrlMask, xK_minus), sendMessage $ IncMasterRows (-1))
|