| Copyright | (c) Norbert Zeh |
|---|---|
| License | BSD-style (see LICENSE) |
| Maintainer | nzeh@cs.dal.ca |
| Stability | unstable |
| Portability | unportable |
| Safe Haskell | None |
| Language | Haskell98 |
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.
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 #
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
| Message ChangeMasterGridGeom # | |
Defined in XMonad.Layout.GridVariants | |
data ChangeGridGeom #
Geometry change messages understood by Grid and SplitGrid
Constructors
| SetGridAspect !Rational | |
| ChangeGridAspect !Rational |
Instances
| Message ChangeGridGeom # | |
Defined in XMonad.Layout.GridVariants | |
Grid layout. The parameter is the desired x:y aspect ratio of windows
Instances
| LayoutClass Grid a # | |
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) # | |
| Show (Grid a) # | |
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
| LayoutClass TallGrid a # | |
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) # | |
| Show (TallGrid a) # | |
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
| LayoutClass SplitGrid a # | |
Defined in XMonad.Layout.GridVariants Methods runLayout :: Workspace WorkspaceId (SplitGrid a) a -> Rectangle -> X ([(a, Rectangle)], Maybe (SplitGrid a)) # doLayout :: SplitGrid a -> Rectangle -> Stack a -> X ([(a, Rectangle)], Maybe (SplitGrid a)) # pureLayout :: SplitGrid a -> Rectangle -> Stack a -> [(a, Rectangle)] # emptyLayout :: SplitGrid a -> Rectangle -> X ([(a, Rectangle)], Maybe (SplitGrid a)) # handleMessage :: SplitGrid a -> SomeMessage -> X (Maybe (SplitGrid a)) # pureMessage :: SplitGrid a -> SomeMessage -> Maybe (SplitGrid a) # description :: SplitGrid a -> String # | |
| Read (SplitGrid a) # | |
| Show (SplitGrid a) # | |
data Orientation #
Type to specify the side of the screen that holds the master area of a SplitGrid.
Instances
| Eq Orientation # | |
Defined in XMonad.Layout.GridVariants | |
| Read Orientation # | |
Defined in XMonad.Layout.GridVariants Methods readsPrec :: Int -> ReadS Orientation # readList :: ReadS [Orientation] # readPrec :: ReadPrec Orientation # readListPrec :: ReadPrec [Orientation] # | |
| Show Orientation # | |
Defined in XMonad.Layout.GridVariants Methods showsPrec :: Int -> Orientation -> ShowS # show :: Orientation -> String # showList :: [Orientation] -> ShowS # | |