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

XMonad.Layout.Groups.Examples

Description

Example layouts for XMonad.Layout.Groups.

Synopsis

Usage

This module contains example Groups-based layouts. You can either import this module directly, or look at its source for ideas of how XMonad.Layout.Groups may be used.

You can use the contents of this module by adding

import XMonad.Layout.Groups.Examples

to the top of your ./.xmonad/xmonad.hs.

For more information on using any of the layouts, jump directly to its "Example" section.

Whichever layout you choose to use, you will probably want to be able to move focus and windows between groups in a consistent manner. For this, you should take a look at the functions from the XMonad.Layout.Groups.Helpers module, which are all re-exported by this module.

For more information on how to extend your layour hook and key bindings, see XMonad.Doc.Extending.

Example: Row of columns

A layout that arranges windows in a row of columns. It uses ZoomRows for both, allowing you to:

  • Freely change the proportion of the screen width allocated to each column
  • Freely change the proportion of a column's heigth allocated to each of its windows
  • Set a column to occupy the whole screen space whenever it has focus
  • Set a window to occupy its whole column whenever it has focus

to use this layout, add rowOfColumns to your layout hook, for example:

myLayout = rowOfColumns

To be able to change the sizes of columns and windows, you can create key bindings for the relevant actions:

((modMask, xK_minus), zoomWindowOut)

and so on.

zoomColumnIn :: X () Source #

Increase the width of the focused column

zoomColumnOut :: X () Source #

Decrease the width of the focused column

zoomColumnReset :: X () Source #

Reset the width of the focused column

toggleColumnFull :: X () Source #

Toggle whether the currently focused column should take up all available space whenever it has focus

zoomWindowIn :: X () Source #

Increase the heigth of the focused window

zoomWindowOut :: X () Source #

Decrease the height of the focused window

zoomWindowReset :: X () Source #

Reset the height of the focused window

toggleWindowFull :: X () Source #

Toggle whether the currently focused window should take up the whole column whenever it has focus

Example: Tiled tab groups

A layout which arranges windows into tabbed groups, and the groups themselves according to XMonad's default algorithm (Tall ||| Mirror Tall ||| Full). As their names indicate, tallTabs starts as Tall, mirrorTallTabs starts as Mirror Tall and fullTabs starts as Full, but in any case you can freely switch between the three afterwards.

You can use any of these three layouts by including it in your layout hook. You will need to provide it with a TiledTabsConfig containing the size parameters for Tall and Mirror Tall, and the shrinker and decoration theme for the tabs. If you're happy with defaults, you can use def:

myLayout = tallTabs def

To be able to increase/decrease the number of master groups and shrink/expand the master area, you can create key bindings for the relevant actions:

((modMask, xK_h), shrinkMasterGroups)

and so on.

data TiledTabsConfig s Source #

Configuration data for the "tiled tab groups" layout

Instances

Instances details
s ~ DefaultShrinker => Default (TiledTabsConfig s) Source # 
Instance details

Defined in XMonad.Layout.Groups.Examples

Methods

def :: TiledTabsConfig s #

def :: Default a => a #

increaseNMasterGroups :: X () Source #

Increase the number of master groups by one

decreaseNMasterGroups :: X () Source #

Decrease the number of master groups by one

shrinkMasterGroups :: X () Source #

Shrink the master area

expandMasterGroups :: X () Source #

Expand the master area

nextOuterLayout :: X () Source #

Rotate the available outer layout algorithms

Useful re-exports and utils

data GroupEQ a Source #

Compare two Groups by comparing the ids of their layouts.

Constructors

GroupEQ 

Instances

Instances details
Eq a => EQF GroupEQ (Group l a) Source # 
Instance details

Defined in XMonad.Layout.Groups.Examples

Methods

eq :: GroupEQ (Group l a) -> Group l a -> Group l a -> Bool Source #

Read (GroupEQ a) Source # 
Instance details

Defined in XMonad.Layout.Groups.Examples

Show (GroupEQ a) Source # 
Instance details

Defined in XMonad.Layout.Groups.Examples

Methods

showsPrec :: Int -> GroupEQ a -> ShowS #

show :: GroupEQ a -> String #

showList :: [GroupEQ a] -> ShowS #

zoomRowG :: (Eq a, Show a, Read a, Show (l a), Read (l a)) => ZoomRow GroupEQ (Group l a) Source #