xmonad-0.15: 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
- (|||) :: 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 # |

Instance details

Defined in XMonad.Layout

Methods

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

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

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

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

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

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

description :: Full a -> String #

Read (Full a) # |
Instance details Defined in XMonad.Layout Methods readsPrec :: Int -> ReadS (Full a) # readList :: ReadS [Full a] # readPrec :: ReadPrec (Full a) # readListPrec :: ReadPrec [Full a] #
Show (Full a) # |
Instance details Defined in XMonad.Layout Methods showsPrec :: Int -> Full a -> ShowS # show :: Full a -> String # showList :: [Full a] -> ShowS #

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 # |

Instance details

Defined in XMonad.Layout

Methods

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

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

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

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

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

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

description :: Tall a -> String #

Read (Tall a) # |
Instance details Defined in XMonad.Layout Methods readsPrec :: Int -> ReadS (Tall a) # readList :: ReadS [Tall a] # readPrec :: ReadPrec (Tall a) # readListPrec :: ReadPrec [Tall a] #
Show (Tall a) # |
Instance details Defined in XMonad.Layout Methods showsPrec :: Int -> Tall a -> ShowS # show :: Tall a -> String # showList :: [Tall a] -> ShowS #

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 # |

Instance details

Defined in XMonad.Layout

Methods

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

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

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

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

handleMessage :: Mirror l a -> SomeMessage -> X (Maybe (Mirror l a)) #

pureMessage :: Mirror l a -> SomeMessage -> Maybe (Mirror l a) #

description :: Mirror l a -> String #

Read (l a) => Read (Mirror l a) # |
Instance details Defined in XMonad.Layout Methods readsPrec :: Int -> ReadS (Mirror l a) # readList :: ReadS [Mirror l a] # readPrec :: ReadPrec (Mirror l a) # readListPrec :: ReadPrec [Mirror l a] #
Show (l a) => Show (Mirror l a) # |
Instance details Defined in XMonad.Layout Methods showsPrec :: Int -> Mirror l a -> ShowS # show :: Mirror l a -> String # showList :: [Mirror l a] -> ShowS #

data Resize #

Change the size of the master pane.

Constructors

Shrink |
Expand |

Instances

Message Resize # |
Instance details Defined in XMonad.Layout

data IncMasterN #

Increase the number of clients in the master pane.

Constructors

IncMasterN !Int |

Instances

Message IncMasterN # |
Instance details Defined in XMonad.Layout

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 # |

Instance details

Defined in XMonad.Layout

Methods

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

doLayout :: Choose l r a -> Rectangle -> Stack a -> X ([(a, Rectangle)], Maybe (Choose l r a)) #

pureLayout :: Choose l r a -> Rectangle -> Stack a -> [(a, Rectangle)] #

emptyLayout :: Choose l r a -> Rectangle -> X ([(a, Rectangle)], Maybe (Choose l r a)) #

handleMessage :: Choose l r a -> SomeMessage -> X (Maybe (Choose l r a)) #

pureMessage :: Choose l r a -> SomeMessage -> Maybe (Choose l r a) #

description :: Choose l r a -> String #

(Read (l a), Read (r a)) => Read (Choose l r a) # |
Instance details Defined in XMonad.Layout Methods readsPrec :: Int -> ReadS (Choose l r a) # readList :: ReadS [Choose l r a] # readPrec :: ReadPrec (Choose l r a) # readListPrec :: ReadPrec [Choose l r a] #
(Show (l a), Show (r a)) => Show (Choose l r a) # |
Instance details Defined in XMonad.Layout Methods showsPrec :: Int -> Choose l r a -> ShowS # show :: Choose l r a -> String # showList :: [Choose l r a] -> ShowS #

(|||) :: 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 # |
Instance details Defined in XMonad.Layout Methods (==) :: ChangeLayout -> ChangeLayout -> Bool # (/=) :: ChangeLayout -> ChangeLayout -> Bool #
Show ChangeLayout # |
Instance details Defined in XMonad.Layout Methods showsPrec :: Int -> ChangeLayout -> ShowS # show :: ChangeLayout -> String # showList :: [ChangeLayout] -> ShowS #
Message ChangeLayout # |
Instance details Defined in XMonad.Layout

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.