XMonad.Hooks.InsertPosition

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

Copyright | (c) 2009 Adam Vogt
License | BSD-style (see xmonad/LICENSE)
Maintainer | vogt.adam@gmail.com
Stability | unstable
Portability | portable
Safe Haskell | None
Language | Haskell2010

XMonad.Hooks.InsertPosition

Contents

- Usage

Description

Configure where new windows should be added and which window should be focused.

Synopsis

- setupInsertPosition :: forall (a :: Type -> Type). Position -> Focus -> XConfig a -> XConfig a
- insertPosition :: Position -> Focus -> ManageHook
- data Focus
  - = Newer
  - | Older
- data Position
  - = Master
  - | End
  - | Above
  - | Below

# Usage

You can use this module by importing it in your `xmonad.hs`:

    import XMonad.Hooks.InsertPosition

You then just have to add `setupInsertPosition` to your `main` function:

    main = xmonad $ … $ setupInsertPosition Master Newer $ def { … }

Alternatively (i.e., you should not do this if you already have set up the above combinator), you can also directly insert `insertPosition` into your manageHook:

    xmonad def { manageHook = insertPosition Master Newer <> myManageHook }

NOTE: You should you put the manageHooks that use `doShift` to take effect before `insertPosition`, so that the window order will be consistent. Because ManageHooks compose from right to left (like function composition `.`), this means that `insertPosition` should be the leftmost ManageHook.

setupInsertPosition :: forall (a :: Type -> Type). Position -> Focus -> XConfig a -> XConfig a #

A combinator for setting up `insertPosition`.

insertPosition :: Position -> Focus -> ManageHook #

insertPosition. A manage hook for placing new windows. XMonad's default is the same as using: `insertPosition Above Newer`.

data Focus #

Constructors

Newer |
Older |

data Position #

Constructors

Master |
End |
Above |
Below |