XMonad.Hooks.ManageDebug

xmonad-contrib-0.12: Third party extensions for xmonad

Copyright | (c) Brandon S Allbery KF8NH, 2014
License | BSD3-style (see LICENSE)
Maintainer | allbery.b@gmail.com
Stability | unstable
Portability | not portable
Safe Haskell | None
Language | Haskell98

XMonad.Hooks.ManageDebug

Description

A `manageHook` and associated `logHook` for debugging `ManageHook`s. Simplest usage: wrap your xmonad config in the `debugManageHook` combinator. Or use `debugManageHookOn` for a triggerable version, specifying the triggering key sequence in `EZConfig` syntax. Or use the individual hooks in whatever way you see fit.

Synopsis

- debugManageHook :: XConfig l -> XConfig l
- debugManageHookOn :: String -> XConfig l -> XConfig l
- manageDebug :: ManageHook
- maybeManageDebug :: ManageHook
- manageDebugLogHook :: X ()
- debugNextManagedWindow :: X ()

# Documentation

debugManageHook :: XConfig l -> XConfig l

A combinator to add full `ManageHook` debugging in a single operation.

debugManageHookOn :: String -> XConfig l -> XConfig l

A combinator to add triggerable `ManageHook` debugging in a single operation. Specify a key sequence as a string in `EZConfig` syntax; press this key before opening the window to get just that logged.

manageDebug :: ManageHook

Place this at the start of a `ManageHook`, or possibly other places for a more limited view. It will show the current `StackSet` state and the new window, and set a flag so that `manageDebugLogHook` will display the final `StackSet` state.

Note that the initial state shows only the current workspace; the final one shows all workspaces, since your `ManageHook` might use e.g. `doShift`,

maybeManageDebug :: ManageHook

`manageDebug` only if the user requested it with `debugNextManagedWindow`.

manageDebugLogHook :: X ()

If `manageDebug` has set the debug-stack flag, show the stack.

debugNextManagedWindow :: X ()

Request that the next window to be managed be `manageDebug`-ed. This can be used anywhere an X action can, such as key bindings, mouse bindings (presumably with `const`), `startupHook`, etc.