Copyright | Quentin Moser <moserq@gmail.com> |
---|---|
License | BSD-style (see LICENSE) |
Maintainer | orphaned |
Stability | stable |
Portability | unportable |
Safe Haskell | Safe-Inferred |
Language | Haskell2010 |
A wmii-like layout algorithm.
Synopsis
- wmii :: Shrinker p => p -> Theme -> Groups (ModifiedLayout Rename (ModifiedLayout (Decoration TabbedDecoration p) (Ignore ChangeLayout (Ignore JumpToLayout (ModifiedLayout UnEscape (Choose (ModifiedLayout Rename Tall) (Choose (ModifiedLayout Rename Simplest) Full))))))) (ZoomRow GroupEQ) Window
- zoomGroupIn :: X ()
- zoomGroupOut :: X ()
- zoomGroupReset :: X ()
- toggleGroupFull :: X ()
- groupToNextLayout :: X ()
- groupToFullLayout :: X ()
- groupToTabbedLayout :: X ()
- groupToVerticalLayout :: X ()
- shrinkText :: DefaultShrinker
- def :: Default a => a
- module XMonad.Layout.Groups.Helpers
Usage
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.
wmii :: Shrinker p => p -> Theme -> Groups (ModifiedLayout Rename (ModifiedLayout (Decoration TabbedDecoration p) (Ignore ChangeLayout (Ignore JumpToLayout (ModifiedLayout UnEscape (Choose (ModifiedLayout Rename Tall) (Choose (ModifiedLayout Rename Simplest) Full))))))) (ZoomRow GroupEQ) Window Source #
A layout inspired by wmii
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
module XMonad.Layout.Groups.Helpers