xmonad-0.18.0: A tiling window manager

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

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 :: Type -> Type) a = Mirror (l a)
- data Resize
  - = Shrink
  - | Expand
- newtype IncMasterN = IncMasterN Int
- data Choose (l :: Type -> Type) (r :: Type -> Type) a = Choose CLR (l a) (r a)
- (|||) :: l a -> r a -> Choose l r a
- data CLR
  - = CL
  - | CR
- data ChangeLayout
  - = FirstLayout
  - | NextLayout
- newtype JumpToLayout = JumpToLayout String
- 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 Source #

Simple fullscreen mode. Renders the focused window fullscreen.

Constructors

Full |

#### Instances

Instances details

LayoutClass Full a Source # |

Instance details

Defined in XMonad.Layout

Methods

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

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

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

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

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

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

description :: Full a -> String Source #

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

data Tall a Source #

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

Instances details

LayoutClass Tall a Source # |

Instance details

Defined in XMonad.Layout

Methods

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

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

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

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

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

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

description :: Tall a -> String Source #

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

newtype Mirror (l :: Type -> Type) a Source #

Mirror a layout, compute its 90 degree rotated form.

Constructors

Mirror (l a) |

#### Instances

Instances details

LayoutClass l a => LayoutClass (Mirror l) a Source # |

Instance details

Defined in XMonad.Layout

Methods

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

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

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

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

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

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

description :: Mirror l a -> String Source #

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

data Resize Source #

Change the size of the master pane.

Constructors

Shrink |
Expand |

#### Instances

Instances details

Message Resize Source # |
Instance details Defined in XMonad.Layout

newtype IncMasterN Source #

Increase the number of clients in the master pane.

Constructors

IncMasterN Int |

#### Instances

Instances details

Message IncMasterN Source # |
Instance details Defined in XMonad.Layout

data Choose (l :: Type -> Type) (r :: Type -> Type) a Source #

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

Constructors

Choose CLR (l a) (r a) |

#### Instances

Instances details

(LayoutClass l a, LayoutClass r a) => LayoutClass (Choose l r) a Source # |

Instance details

Defined in XMonad.Layout

Methods

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

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

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

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

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

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

description :: Choose l r a -> String Source #

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

(|||) :: l a -> r a -> Choose l r a infixr 5 Source #

The layout choice combinator

data CLR Source #

Choose the current sub-layout (left or right) in `Choose`.

Constructors

CL |
CR |

#### Instances

Instances details

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

data ChangeLayout Source #

Messages to change the current layout. Also see `JumpToLayout`.

Constructors

FirstLayout |
NextLayout |

#### Instances

Instances details

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

newtype JumpToLayout Source #

A message to jump to a particular layout, specified by its description string.

The argument given to a `JumpToLayout` message should be the `description` of the layout to be selected. If you use XMonad.Hooks.DynamicLog from `xmonad-contrib`, this is the name of the layout displayed in your status bar. Alternatively, you can use GHCi to determine the proper name to use. For example:

    $ ghci
    GHCi, version 6.8.2: http://www.haskell.org/ghc/  :? for help
    Loading package base ... linking ... done.
    :set prompt "> "    -- don't show loaded module names
    > :m +XMonad.Core   -- load the xmonad core
    > :m +XMonad.Layout.Grid  -- load whatever module you want to use
    > description Grid  -- find out what it's called
    "Grid"

As yet another (possibly easier) alternative, you can use the XMonad.Layout.Renamed module (also in `xmonad-contrib`) to give custom names to your layouts, and use those.

For example, if you want to jump directly to the `Full` layout you can do

    , ((modm .|. controlMask, xK_f), sendMessage $ JumpToLayout "Full")

Constructors

JumpToLayout String |

#### Instances

Instances details

Message JumpToLayout Source # |
Instance details Defined in XMonad.Layout

mirrorRect :: Rectangle -> Rectangle Source #

Mirror a rectangle.

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

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

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

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

tile Source #

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 partitioned between these two panes. One pane, the master, by convention has the least number of windows in it.