XMonad.Layout.MultiColumns

xmonad-contrib-0.13: Third party extensions for xmonad

Copyright | (c) Anders Engstrom <ankaan@gmail.com>
License | BSD3-style (see LICENSE)
Maintainer | Anders Engstrom <ankaan@gmail.com>
Stability | unstable
Portability | unportable
Safe Haskell | None
Language | Haskell98

XMonad.Layout.MultiColumns

Contents

- Usage

Description

This layout tiles windows in a growing number of columns. The number of windows in each column can be controlled by messages.

Synopsis

- multiCol :: [Int] -> Int -> Rational -> Rational -> MultiCol a
- data MultiCol a

# Usage

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

    import XMonad.Layout.MultiColumns

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

    myLayouts = multiCol [1] 4 0.01 0.5 ||| etc..
    main = xmonad def { layoutHook = myLayouts }

Or alternatively:

    myLayouts = Mirror (multiCol [1] 2 0.01 (-0.25)) ||| etc..
    main = xmonad def { layoutHook = myLayouts }

The maximum number of windows in a column can be controlled using the IncMasterN messages and the column containing the focused window will be modified. If the value is 0, all remaining windows will be placed in that column when all columns before that has been filled.

The size can be set to between 1 and -0.5. If the value is positive, the master column will be of that size. The rest of the screen is split among the other columns. But if the size is negative, it instead indicates the size of all non-master columns and the master column will cover the rest of the screen. If the master column would become smaller than the other columns, the screen is instead split equally among all columns. Therefore, if equal size among all columns are desired, set the size to -0.5.

For more detailed instructions on editing the layoutHook see:

XMonad.Doc.Extending

multiCol #

Arguments

:: [Int] | Windows in each column, starting with master. Set to 0 to catch the rest.
-> Int | Default value for all following columns.
-> Rational | How much to change size each time.
-> Rational | Initial size of master area, or column area if the size is negative.
-> MultiCol a |

Layout constructor.

data MultiCol a #

Instances

LayoutClass MultiCol a # |
Methods runLayout :: Workspace WorkspaceId (MultiCol a) a -> Rectangle -> X ([(a, Rectangle)], Maybe (MultiCol a)) # doLayout :: MultiCol a -> Rectangle -> Stack a -> X ([(a, Rectangle)], Maybe (MultiCol a)) # pureLayout :: MultiCol a -> Rectangle -> Stack a -> [(a, Rectangle)] # emptyLayout :: MultiCol a -> Rectangle -> X ([(a, Rectangle)], Maybe (MultiCol a)) # handleMessage :: MultiCol a -> SomeMessage -> X (Maybe (MultiCol a)) # pureMessage :: MultiCol a -> SomeMessage -> Maybe (MultiCol a) # description :: MultiCol a -> String #
Eq (MultiCol a) # |
Methods (==) :: MultiCol a -> MultiCol a -> Bool # (/=) :: MultiCol a -> MultiCol a -> Bool #
Read (MultiCol a) # |
Methods readsPrec :: Int -> ReadS (MultiCol a) # readList :: ReadS [MultiCol a] # readPrec :: ReadPrec (MultiCol a) # readListPrec :: ReadPrec [MultiCol a] #
Show (MultiCol a) # |
Methods showsPrec :: Int -> MultiCol a -> ShowS # show :: MultiCol a -> String # showList :: [MultiCol a] -> ShowS #