XMonad.Layout

xmonad-0.11: A tiling window manager

Copyright | (c) Spencer Janssen 2007
License | BSD3-style (see LICENSE)
Maintainer | spencerjanssen@gmail.com
Stability | unstable
Portability | not portable, Typeable deriving, mtl, posix
Safe Haskell | None
Language | Haskell98

XMonad.Layout

Description

The collection of core layouts.

Synopsis

- data Full a = Full
- data Tall a = Tall {
  - tallNMaster :: !Int
  - tallRatioIncrement :: !Rational
  - tallRatio :: !Rational
  }
- newtype Mirror l a = Mirror (l a)
- data Resize
  - = Shrink
  - | Expand
- data IncMasterN = IncMasterN !Int
- data Choose l r a
- (|||) :: (LayoutClass l a, LayoutClass r a) => l a -> r a -> Choose l r a
- data ChangeLayout
  - = FirstLayout
  - | NextLayout
- mirrorRect :: Rectangle -> Rectangle
- splitVertically :: Int -> Rectangle -> [Rectangle]
- splitHorizontally :: Int -> Rectangle -> [Rectangle]
- splitHorizontallyBy :: RealFrac r => r -> Rectangle -> (Rectangle, Rectangle)
- splitVerticallyBy :: RealFrac r => r -> Rectangle -> (Rectangle, Rectangle)
- tile :: Rational -> Rectangle -> Int -> Int -> [Rectangle]

# Documentation

data Full a

Simple fullscreen mode. Renders the focused window fullscreen.

Constructors

Full |

Instances

LayoutClass Full a |
Read (Full a) |
Show (Full a) |

data Tall a

The builtin tiling mode of xmonad. Supports `Shrink`, `Expand` and `IncMasterN`.

Constructors

Tall |
Fields tallNMaster :: !Int The default number of windows in the master pane (default: 1) tallRatioIncrement :: !Rational Percent of screen to increment by when resizing panes (default: 3/100) tallRatio :: !Rational Default proportion of screen occupied by master pane (default: 1/2)

Instances

LayoutClass Tall a |
Read (Tall a) |
Show (Tall a) |

newtype Mirror l a

Mirror a layout, compute its 90 degree rotated form.

Constructors

Mirror (l a) |

Instances

LayoutClass l a => LayoutClass (Mirror l) a |
Read (l a) => Read (Mirror l a) |
Show (l a) => Show (Mirror l a) |

data Resize

Change the size of the master pane.

Constructors

Shrink |
Expand |

Instances

Message Resize |
Typeable * Resize |

data IncMasterN

Increase the number of clients in the master pane.

Constructors

IncMasterN !Int |

Instances

Message IncMasterN |
Typeable * IncMasterN |

data Choose l r a

A layout that allows users to switch between various layout options.

Instances

(LayoutClass l a, LayoutClass r a) => LayoutClass (Choose l r) a |
(Read (l a), Read (r a)) => Read (Choose l r a) |
(Show (l a), Show (r a)) => Show (Choose l r a) |

(|||) :: (LayoutClass l a, LayoutClass r a) => l a -> r a -> Choose l r a infixr 5

The layout choice combinator

data ChangeLayout

Messages to change the current layout.

Constructors

FirstLayout |
NextLayout |

Instances

Eq ChangeLayout |
Show ChangeLayout |
Message ChangeLayout |
Typeable * ChangeLayout |

mirrorRect :: Rectangle -> Rectangle

Mirror a rectangle.

splitVertically :: Int -> Rectangle -> [Rectangle]

splitHorizontally :: Int -> Rectangle -> [Rectangle]

splitHorizontallyBy :: RealFrac r => r -> Rectangle -> (Rectangle, Rectangle)

splitVerticallyBy :: RealFrac r => r -> Rectangle -> (Rectangle, Rectangle)

tile

Arguments

:: Rational | `frac`, what proportion of the screen to devote to the master area
-> Rectangle | `r`, the rectangle representing the screen
-> Int | `nmaster`, the number of windows in the master pane
-> Int | `n`, the total number of windows to tile
-> [Rectangle] |

Compute the positions for windows using the default two-pane tiling algorithm.

The screen is divided into two panes. All clients are then partioned between these two panes. One pane, the master, by convention has the least number of windows in it.