xmonad-contrib-0.10: Third party extensions for xmonad

Portabilitynot portable




A layout in the spirit of XMonad.Layout.ResizableTile, but with the option to use the mouse to adjust the layout.



You can use this module with the following in your ~/.xmonad/xmonad.hs:

 import XMonad.Layout.MouseResizableTile

Then edit your layoutHook by adding the MouseResizableTile layout. Either in its normal form or the mirrored version. (The mirror layout modifier will not work correctly here because of the use of the mouse.)

 myLayout = mouseResizableTile ||| etc..
 main = xmonad defaultConfig { layoutHook = myLayout }

For more detailed instructions on editing the layoutHook see:


You may also want to add the following key bindings:

 , ((modm,               xK_u), sendMessage ShrinkSlave) -- %! Shrink a slave area
 , ((modm,               xK_i), sendMessage ExpandSlave) -- %! Expand a slave area

For detailed instruction on editing the key binding see:


mouseResizableTileMirrored :: MouseResizableTile aSource

May be removed in favor of mouseResizableTile { isMirrored = True }


The following functions are also labels for updating the data (whose representation is otherwise hidden) produced by mouseResizableTile.


 myLayout = mouseResizableTile{ masterFrac = 0.7,
                                fracIncrement = 0.05,
                                draggerType = BordersDragger }
                |||  etc..

nmaster :: MouseResizableTile a -> IntSource

Get/set the number of windows in master pane (default: 1).

masterFrac :: MouseResizableTile a -> RationalSource

Get/set the proportion of screen occupied by master pane (default: 1/2).

slaveFrac :: MouseResizableTile a -> RationalSource

Get/set the proportion of remaining space in a column occupied by a slave window (default: 1/2).

fracIncrement :: MouseResizableTile a -> RationalSource

Get/set the increment used when modifying masterFrac/slaveFrac by the Shrink, Expand, etc. messages (default: 3/100).

isMirrored :: MouseResizableTile a -> BoolSource

Get/set whether the layout is mirrored (default: False).

draggerType :: MouseResizableTile a -> DraggerTypeSource

Get/set dragger and gap dimensions (default: FixedDragger 6 6).

data DraggerType Source

Specifies the size of the clickable area between windows.




gapWidth :: Dimension

width of a gap between windows

draggerWidth :: Dimension

width of the dragger itself (will overlap windows if greater than gap)


no gaps, draggers overlap window borders