xmonad-contrib-0.18.0: Community-maintained extensions for xmonad

Copyright | (c) Sam Tay <sam.chong.tay@gmail.com>
License | BSD3-style (see LICENSE)
Maintainer | ?
Stability | unstable
Portability | unportable
Safe Haskell | None
Language | Haskell2010

XMonad.Layout.ResizableThreeColumns

Contents

- Usage

Description

A layout similar to tall but with three columns. With 2560x1600 pixels this layout can be used for a huge main window and up to six reasonable sized resizable stack windows.

Synopsis

- data ResizableThreeCol a
  - = ResizableThreeColMid {
    - threeColNMaster :: !Int
    - threeColDelta :: !Rational
    - threeColFrac :: !Rational
    - threeColSlaves :: [Rational]
    }
  - | ResizableThreeCol {
    - threeColNMaster :: !Int
    - threeColDelta :: !Rational
    - threeColFrac :: !Rational
    - threeColSlaves :: [Rational]
    }
- data MirrorResize
  - = MirrorShrink
  - | MirrorExpand

# Usage

You can use this module with the following in your `xmonad.hs`:

    import XMonad.Layout.ResizableThreeColumns

Then edit your `layoutHook` by adding the ResizableThreeCol layout:

    myLayout = ResizableThreeCol 1 (3/100) (1/2) [] ||| ResizableThreeColMid 1 (3/100) (1/2) [] ||| etc..
    main = xmonad def { layoutHook = myLayout }

The first argument specifies how many windows initially appear in the main window. The second argument argument specifies the amount to resize while resizing and the third argument specifies the initial size of the columns. A positive size designates the fraction of the screen that the main window should occupy, but if the size is negative the absolute value designates the fraction a stack column should occupy. If both stack columns are visible, they always occupy the same amount of space.

You may also want to add the following key bindings:

    , ((modm,               xK_a), sendMessage MirrorShrink)
    , ((modm,               xK_z), sendMessage MirrorExpand)

The ResizableThreeColMid variant places the main window between the stack columns.

For more detailed instructions on editing the layoutHook see the tutorial and XMonad.Doc.Extending.

data ResizableThreeCol a #

Arguments are nmaster, delta, fraction

Constructors

ResizableThreeColMid |

Fields

- threeColNMaster :: !Int
- threeColDelta :: !Rational
- threeColFrac :: !Rational
- threeColSlaves :: [Rational]

ResizableThreeCol |

Fields

- threeColNMaster :: !Int
- threeColDelta :: !Rational
- threeColFrac :: !Rational
- threeColSlaves :: [Rational]

#### Instances

Instances details

LayoutClass ResizableThreeCol a # |

Instance details

Defined in XMonad.Layout.ResizableThreeColumns

Methods

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

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

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

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

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

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

description :: ResizableThreeCol a -> String #

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

data MirrorResize #

Constructors

MirrorShrink |
MirrorExpand |

#### Instances

Instances details

Message MirrorResize # |
Instance details Defined in XMonad.Layout.ResizableTile