xmonad-contrib- Community-maintained extensions for xmonad
CopyrightQuentin Moser <moserq@gmail.com>
LicenseBSD-style (see LICENSE)
Safe HaskellSafe-Inferred



A wmii-like layout algorithm.



This module provides a layout inspired by the one used by the wmii (http://wmii.suckless.org) window manager. Windows are arranged into groups in a horizontal row, and each group can lay out its windows

  • by maximizing the focused one
  • by tabbing them (wmii uses a stacked layout, but I'm too lazy to write it)
  • by arranging them in a column.

As the groups are arranged in a ZoomRow, the relative width of each group can be increased or decreased at will. Groups can also be set to use the whole screen whenever they have focus.

You can use the contents of this module by adding

import XMonad.Layout.Groups.Wmii

to the top of your xmonad.hs, and adding wmii (with a Shrinker and decoration Theme as parameters) to your layout hook, for example:

myLayout = wmii shrinkText def

To be able to zoom in and out of groups, change their inner layout, etc., create key bindings for the relevant actions:

((modMask, xK_f), toggleGroupFull)

and so on.

For more information on how to extend your layoutHook and key bindings, see the tutorial and XMonad.Doc.Extending.

Finally, you will probably want to be able to move focus and windows between groups in a consistent fashion. For this, you should take a look at the XMonad.Layout.Groups.Helpers module, whose contents are re-exported by this module.

zoomGroupIn :: X () Source #

Increase the width of the focused group

zoomGroupOut :: X () Source #

Decrease the size of the focused group

zoomGroupReset :: X () Source #

Reset the size of the focused group to the default

toggleGroupFull :: X () Source #

Toggle whether the currently focused group should be maximized whenever it has focus.

groupToNextLayout :: X () Source #

Rotate the layouts in the focused group.

groupToFullLayout :: X () Source #

Switch the focused group to the "maximized" layout.

groupToTabbedLayout :: X () Source #

Switch the focused group to the "tabbed" layout.

groupToVerticalLayout :: X () Source #

Switch the focused group to the "column" layout.

Useful re-exports

def :: Default a => a #

The default value for this type.