| xmonad-contrib-0.9.1: Third party extensions for xmonad | Source code | Contents | Index

XMonad.Layout.WindowArranger

Portability | unportable
Stability | unstable
Maintainer | andrea.rossato@unibz.it

Contents

Usage

Description
This is a pure layout modifier that will let you move and resize windows with the keyboard in any layout.
Synopsis

windowArrange :: l a -> ModifiedLayout WindowArranger l a
windowArrangeAll :: l a -> ModifiedLayout WindowArranger l a

data WindowArrangerMsg

= DeArrange
| Arrange
| IncreaseLeft Int
| IncreaseRight Int
| IncreaseUp Int
| IncreaseDown Int
| DecreaseLeft Int
| DecreaseRight Int
| DecreaseUp Int
| DecreaseDown Int
| MoveLeft Int
| MoveRight Int
| MoveUp Int
| MoveDown Int
| SetGeometry Rectangle

data WindowArranger a
memberFromList :: (b -> c) -> (c -> a -> Bool) -> a -> [b] -> [b]
listFromList :: (b -> c) -> (c -> [a] -> Bool) -> [a] -> [b] -> [b]
diff :: Eq a => ([a], [a]) -> ([a], [a])

Usage

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

     import XMonad.Layout.WindowArranger
     myLayout = layoutHook defaultConfig
     main = xmonad defaultConfig { layoutHook = windowArrange myLayout }

or

     main = xmonad defaultConfig { layoutHook = windowArrangeAll myLayout }

For more detailed instructions on editing the layoutHook see:

XMonad.Doc.Extending

You may also want to define some key binding to move or resize windows. These are good defaults:

            , ((modm .|. controlMask              , xK_s    ), sendMessage  Arrange         )
            , ((modm .|. controlMask .|. shiftMask, xK_s    ), sendMessage  DeArrange       )
            , ((modm .|. controlMask              , xK_Left ), sendMessage (MoveLeft      1))
            , ((modm .|. controlMask              , xK_Right), sendMessage (MoveRight     1))
            , ((modm .|. controlMask              , xK_Down ), sendMessage (MoveDown      1))
            , ((modm .|. controlMask              , xK_Up   ), sendMessage (MoveUp        1))
            , ((modm                 .|. shiftMask, xK_Left ), sendMessage (IncreaseLeft  1))
            , ((modm                 .|. shiftMask, xK_Right), sendMessage (IncreaseRight 1))
            , ((modm                 .|. shiftMask, xK_Down ), sendMessage (IncreaseDown  1))
            , ((modm                 .|. shiftMask, xK_Up   ), sendMessage (IncreaseUp    1))
            , ((modm .|. controlMask .|. shiftMask, xK_Left ), sendMessage (DecreaseLeft  1))
            , ((modm .|. controlMask .|. shiftMask, xK_Right), sendMessage (DecreaseRight 1))
            , ((modm .|. controlMask .|. shiftMask, xK_Down ), sendMessage (DecreaseDown  1))
            , ((modm .|. controlMask .|. shiftMask, xK_Up   ), sendMessage (DecreaseUp    1))

For detailed instructions on editing your key bindings, see XMonad.Doc.Extending.

windowArrange :: l a -> ModifiedLayout WindowArranger l a | Source

A layout modifier to float the windows in a workspace

windowArrangeAll :: l a -> ModifiedLayout WindowArranger l a | Source

A layout modifier to float all the windows in a workspace

data WindowArrangerMsg | Source

Constructors

DeArrange |
Arrange |
IncreaseLeft Int |
IncreaseRight Int |
IncreaseUp Int |
IncreaseDown Int |
DecreaseLeft Int |
DecreaseRight Int |
DecreaseUp Int |
DecreaseDown Int |
MoveLeft Int |
MoveRight Int |
MoveUp Int |
MoveDown Int |
SetGeometry Rectangle |

Instances

Typeable WindowArrangerMsg
Message WindowArrangerMsg

data WindowArranger a | Source

Instances

(Show a, Read a, Eq a) => LayoutModifier WindowArranger a
Read a => Read (WindowArranger a)
Show a => Show (WindowArranger a)

memberFromList :: (b -> c) -> (c -> a -> Bool) -> a -> [b] -> [b] | Source

Given a function to be applied to each member of ta list, and a function to check a condition by processing this transformed member with something, you get the first member that satisfy the condition, or an empty list.

listFromList :: (b -> c) -> (c -> [a] -> Bool) -> [a] -> [b] -> [b] | Source

Given a function to be applied to each member of a list, and a function to check a condition by processing this transformed member with the members of a list, you get the list of members that satisfy the condition.

diff :: Eq a => ([a], [a]) -> ([a], [a]) | Source

Get the list of elements to be deleted and the list of elements to be added to the first list in order to get the second list.
Produced by Haddock version 2.4.2