xmonad-contrib-0.17.1: Community-maintained extensions for xmonad
Copyright(c) Norbert Zeh
LicenseBSD-style (see LICENSE)
Maintainernzeh@cs.dal.ca
Stabilityunstable
Portabilityunportable
Safe HaskellSafe-Inferred
LanguageHaskell2010

XMonad.Layout.GridVariants

Contents

Description

Two layouts: one is a variant of the Grid layout that allows the desired aspect ratio of windows to be specified. The other is like Tall but places a grid with fixed number of rows and columns in the master area and uses an aspect-ratio-specified layout for the slaves.

Synopsis

Usage

This module can be used as follows:

import XMonad.Layout.GridVariants

Then add something like this to your layouts:

Grid (16/10)

for a 16:10 aspect ratio grid, or

SplitGrid L 2 3 (2/3) (16/10) (5/100)

for a layout with a 2x3 master grid that uses 2/3 of the screen, and a 16:10 aspect ratio slave grid to its right. The last parameter is again the percentage by which the split between master and slave area changes in response to Expand/Shrink messages.

To be able to change the geometry of the master grid, add something like this to your keybindings:

((modm .|. shiftMask, xK_equal), sendMessage $ IncMasterCols 1),
((modm .|. shiftMask, xK_minus), sendMessage $ IncMasterCols (-1)),
((modm .|. controlMask,  xK_equal), sendMessage $ IncMasterRows 1),
((modm .|. controlMask,  xK_minus), sendMessage $ IncMasterRows (-1))

data ChangeMasterGridGeom Source #

The geometry change message understood by the master grid

Constructors

IncMasterRows !Int

Change the number of master rows

IncMasterCols !Int

Change the number of master columns

SetMasterRows !Int

Set the number of master rows to absolute value

SetMasterCols !Int

Set the number of master columns to absolute value

SetMasterFraction !Rational

Set the fraction of the screen used by the master grid

Instances

Instances details
Message ChangeMasterGridGeom Source # 
Instance details

Defined in XMonad.Layout.GridVariants

data ChangeGridGeom Source #

Geometry change messages understood by Grid and SplitGrid

Instances

Instances details
Message ChangeGridGeom Source # 
Instance details

Defined in XMonad.Layout.GridVariants

newtype Grid a Source #

Grid layout. The parameter is the desired x:y aspect ratio of windows

Constructors

Grid Rational 

Instances

Instances details
LayoutClass Grid a Source # 
Instance details

Defined in XMonad.Layout.GridVariants

Methods

runLayout :: Workspace WorkspaceId (Grid a) a -> Rectangle -> X ([(a, Rectangle)], Maybe (Grid a)) #

doLayout :: Grid a -> Rectangle -> Stack a -> X ([(a, Rectangle)], Maybe (Grid a)) #

pureLayout :: Grid a -> Rectangle -> Stack a -> [(a, Rectangle)] #

emptyLayout :: Grid a -> Rectangle -> X ([(a, Rectangle)], Maybe (Grid a)) #

handleMessage :: Grid a -> SomeMessage -> X (Maybe (Grid a)) #

pureMessage :: Grid a -> SomeMessage -> Maybe (Grid a) #

description :: Grid a -> String #

Read (Grid a) Source # 
Instance details

Defined in XMonad.Layout.GridVariants

Show (Grid a) Source # 
Instance details

Defined in XMonad.Layout.GridVariants

Methods

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

show :: Grid a -> String #

showList :: [Grid a] -> ShowS #

data TallGrid a Source #

TallGrid layout. Parameters are

  • number of master rows
  • number of master columns
  • portion of screen used for master grid
  • x:y aspect ratio of slave windows
  • increment for resize messages

This exists mostly because it was introduced in an earlier version. It's a fairly thin wrapper around "SplitGrid L".

Instances

Instances details
LayoutClass TallGrid a Source # 
Instance details

Defined in XMonad.Layout.GridVariants

Methods

runLayout :: Workspace WorkspaceId (TallGrid a) a -> Rectangle -> X ([(a, Rectangle)], Maybe (TallGrid a)) #

doLayout :: TallGrid a -> Rectangle -> Stack a -> X ([(a, Rectangle)], Maybe (TallGrid a)) #

pureLayout :: TallGrid a -> Rectangle -> Stack a -> [(a, Rectangle)] #

emptyLayout :: TallGrid a -> Rectangle -> X ([(a, Rectangle)], Maybe (TallGrid a)) #

handleMessage :: TallGrid a -> SomeMessage -> X (Maybe (TallGrid a)) #

pureMessage :: TallGrid a -> SomeMessage -> Maybe (TallGrid a) #

description :: TallGrid a -> String #

Read (TallGrid a) Source # 
Instance details

Defined in XMonad.Layout.GridVariants

Show (TallGrid a) Source # 
Instance details

Defined in XMonad.Layout.GridVariants

Methods

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

show :: TallGrid a -> String #

showList :: [TallGrid a] -> ShowS #

data SplitGrid a Source #

SplitGrid layout. Parameters are

  • side where the master is
  • number of master rows
  • number of master columns
  • portion of screen used for master grid
  • x:y aspect ratio of slave windows
  • increment for resize messages

Instances

Instances details
LayoutClass SplitGrid a Source # 
Instance details

Defined in XMonad.Layout.GridVariants

Read (SplitGrid a) Source # 
Instance details

Defined in XMonad.Layout.GridVariants

Show (SplitGrid a) Source # 
Instance details

Defined in XMonad.Layout.GridVariants

data Orientation Source #

Type to specify the side of the screen that holds the master area of a SplitGrid.

Constructors

T 
B 
L 
R