You can use this module with the following in your ~/.xmonad/xmonad.hs:
import XMonad.Layout.Mosaic
Then edit your layoutHook by adding the Mosaic layout:
myLayouts = Mosaic (take 5 $ iterate (*0.7) 1) ||| Mosaic [3,1,1,1,1,1] ||| Full ||| etc..
main = xmonad defaultConfig { layoutHook = myLayouts }
Unfortunately, infinite lists break serialization, so don't use them.
To change the choice in aspect ratio and the relative sizes of windows, add
to your keybindings:
, ((modMask, xK_a), sendMessage Taller)
, ((modMask, xK_z), sendMessage Wider)
, ((modMask, xK_h), sendMessage Shrink >> sendMessage (SlopeMod shallower))
, ((modMask, xK_l), sendMessage Expand >> sendMessage (SlopeMod steeper))
, ((modMask, xK_r), sendMessage Reset)
For more detailed instructions on editing the layoutHook see:
XMonad.Doc.Extending
|
These sample functions are meant to be applied to the list of window sizes
through the SlopeMod message.
Steeper and shallower scale the ratios of successive windows.
growMaster and shrinkMaster just increase and decrease the size of the first
element, and thus they change the layout very similarily to the standard
Expand or Shrink for the Tall layout.
It may be possible to resize the specific focused window; however the same
result could probably be achieved by promoting it, or moving it to a higher
place in the list of windows; when you have a decreasing list of window
sizes, the change in position will also result in a change in size.
|