| Copyright | (c) Konstantin Sobolev <konstantin.sobolev@gmail.com> |
|---|---|
| License | BSD-style (see LICENSE) |
| Maintainer | Konstantin Sobolev <konstantin.sobolev@gmail.com> |
| Stability | unstable |
| Portability | unportable |
| Safe Haskell | None |
| Language | Haskell98 |
XMonad.Layout.ComboP
Contents
Description
A layout that combines multiple layouts and allows to specify where to put new windows.
Synopsis
- combineTwoP :: (LayoutClass super (), LayoutClass l1 Window, LayoutClass l2 Window) => super () -> l1 Window -> l2 Window -> Property -> CombineTwoP (super ()) l1 l2 Window
- data CombineTwoP l l1 l2 a
- data SwapWindow
- data PartitionWins = PartitionWins
- data Property
Usage
You can use this module with the following in your ~/.xmonad/xmonad.hs:
import XMonad.Layout.ComboP
and add something like
combineTwoP (TwoPane 0.03 0.5) (tabbed shrinkText defaultTConf) (tabbed shrinkText defaultTConf) (ClassName "Firefox")
to your layouts. This way all windows with class = "Firefox" will always go to the left pane, all others - to the right.
For more detailed instructions on editing the layoutHook see:
combineTwoP is a simple layout combinator based on combineTwo from Combo, with
addition of a Property which tells where to put new windows. Windows mathing
the property will go into the first part, all others will go into the second
part. It supports Move messages as combineTwo does, but it also introduces
SwapWindow message which sends focused window to the other part. It is
required because Move commands don't work when one of the parts is empty.
To use it, import "XMonad.Layout.WindowNavigation", and add the following key
bindings (or something similar):
, ((modm .|. controlMask .|. shiftMask, xK_Right), sendMessage $ Move R) , ((modm .|. controlMask .|. shiftMask, xK_Left ), sendMessage $ Move L) , ((modm .|. controlMask .|. shiftMask, xK_Up ), sendMessage $ Move U) , ((modm .|. controlMask .|. shiftMask, xK_Down ), sendMessage $ Move D) , ((modm .|. controlMask .|. shiftMask, xK_s ), sendMessage $ SwapWindow)
For detailed instruction on editing the key binding see XMonad.Doc.Extending.
combineTwoP :: (LayoutClass super (), LayoutClass l1 Window, LayoutClass l2 Window) => super () -> l1 Window -> l2 Window -> Property -> CombineTwoP (super ()) l1 l2 Window #
data CombineTwoP l l1 l2 a #
Instances
data SwapWindow #
Constructors
| SwapWindow | Swap window between panes |
| SwapWindowN Int | Swap window between panes in the N-th nested ComboP. |
Instances
| Read SwapWindow # | |
Defined in XMonad.Layout.ComboP Methods readsPrec :: Int -> ReadS SwapWindow # readList :: ReadS [SwapWindow] # readPrec :: ReadPrec SwapWindow # readListPrec :: ReadPrec [SwapWindow] # | |
| Show SwapWindow # | |
Defined in XMonad.Layout.ComboP Methods showsPrec :: Int -> SwapWindow -> ShowS # show :: SwapWindow -> String # showList :: [SwapWindow] -> ShowS # | |
| Message SwapWindow # | |
Defined in XMonad.Layout.ComboP | |
data PartitionWins #
Constructors
| PartitionWins | Reset the layout and partition all windows into the correct sub-layout. Useful for when window properties have changed and you want ComboP to update which layout a window belongs to. |
Instances
| Read PartitionWins # | |
Defined in XMonad.Layout.ComboP Methods readsPrec :: Int -> ReadS PartitionWins # readList :: ReadS [PartitionWins] # | |
| Show PartitionWins # | |
Defined in XMonad.Layout.ComboP Methods showsPrec :: Int -> PartitionWins -> ShowS # show :: PartitionWins -> String # showList :: [PartitionWins] -> ShowS # | |
| Message PartitionWins # | |
Defined in XMonad.Layout.ComboP | |
Most of the property constructors are quite self-explaining.
Constructors
| Title String | |
| ClassName String | |
| Resource String | |
| Role String | WM_WINDOW_ROLE property |
| Machine String | WM_CLIENT_MACHINE property |
| And Property Property infixr 9 | |
| Or Property Property infixr 8 | |
| Not Property | |
| Const Bool | |
| Tagged String | Tagged via |