xmonad-contrib-bluetilebranch- Third party extensions for xmonadSource codeContentsIndex
Based on MosaicAlt, but aspect ratio messages always change the aspect ratios, and rearranging the window stack changes the window sizes.
data Mosaic a = Mosaic [Rational]
data Aspect
= Taller
| Wider
| Reset
| SlopeMod ([Rational] -> [Rational])
shallower :: [Rational] -> [Rational]
steeper :: [Rational] -> [Rational]
growMaster :: [Rational] -> [Rational]
shrinkMaster :: [Rational] -> [Rational]
changeMaster :: Rational -> [Rational] -> [Rational]

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:


data Mosaic a Source
Mosaic [Rational]The relative magnitudes (the sign is ignored) of the rational numbers - provided determine the relative areas that the windows receive. The - first number represents the size of the master window, the second is for - the next window in the stack, and so on. Windows without a list element - are hidden.
show/hide Instances
data Aspect Source
SlopeMod ([Rational] -> [Rational])
show/hide Instances
shallower :: [Rational] -> [Rational]Source
steeper :: [Rational] -> [Rational]Source

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.

growMaster :: [Rational] -> [Rational]Source
shrinkMaster :: [Rational] -> [Rational]Source
changeMaster :: Rational -> [Rational] -> [Rational]Source
Multiply the area of the current master by a specified ratio
Produced by Haddock version 2.4.2