XMonad.Hooks.ManageDebug

xmonad-contrib-0.18.1: Community-maintained 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 | Haskell2010

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 XMonad.Util.EZConfig syntax. Or use the individual hooks in whatever way you see fit.

Synopsis

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

# Documentation

debugManageHook :: forall (l :: Type -> Type). XConfig l -> XConfig l #

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

debugManageHookOn :: forall (l :: Type -> Type). String -> XConfig l -> XConfig l #

A combinator to add triggerable `ManageHook` debugging in a single operation. Specify a key sequence as a string in XMonad.Util.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.