Copyright | (c) Jan Vornberger 2009 |
---|---|
License | BSD3-style (see LICENSE) |
Maintainer | jan.vornberger@informatik.uni-oldenburg.de |
Stability | unstable |
Portability | not portable |
Safe Haskell | Safe-Inferred |
Language | Haskell2010 |
This module contains two hooks for the PositionStore (see XMonad.Util.PositionStore) - a ManageHook and an EventHook.
The ManageHook can be used to fill the PositionStore with position and size information about new windows. The advantage of using this hook is, that the information is recorded independent of the currently active layout. So the floating shape of the window can later be restored even if it was opened in a tiled layout initially.
For windows, that do not request a particular position, a random position will be assigned. This prevents windows from piling up exactly on top of each other.
The EventHook makes sure that windows are deleted from the PositionStore when they are closed.
Synopsis
Usage
You can use this module with the following in your ~/.xmonad/xmonad.hs
:
import XMonad.Hooks.PositionStoreHooks
and adding positionStoreManageHook
to your ManageHook
as well
as positionStoreEventHook
to your event hooks. To be accurate
about window sizes, the module needs to know if any decoration is in effect.
This is specified with the first argument: Supply Nothing
for no decoration,
otherwise use 'Just def' or similar to inform the module about the
decoration theme used.
myManageHook = positionStoreManageHook Nothing <> manageHook def myHandleEventHook = positionStoreEventHook main = xmonad def { manageHook = myManageHook , handleEventHook = myHandleEventHook }