xmonad-contrib-bluetilebranch-0.8.1: Third party extensions for xmonadSource codeContentsIndex
One-shot and permanent ManageHooks that can be updated at runtime.
initDynamicHooks :: IO (IORef DynamicHooks)
dynamicMasterHook :: IORef DynamicHooks -> ManageHook
addDynamicHook :: IORef DynamicHooks -> ManageHook -> X ()
updateDynamicHook :: IORef DynamicHooks -> (ManageHook -> ManageHook) -> X ()
oneShotHook :: IORef DynamicHooks -> Query Bool -> ManageHook -> X ()

Provides two new kinds of ManageHooks that can be defined at runtime.

  • One-shot ManageHooks that are deleted after they execute.
  • Permanent ManageHooks (unless you want to destroy them)

Note that you will lose all dynamically defined ManageHooks when you mod+q! If you want them to last, you should create them as normal in your xmonad.hs.

First, you must execute initDynamicHooks from main in your xmonad.hs:

 dynHooksRef <- initDynamicHooks

and then pass this value to the other functions in this module.

You also need to add the base ManageHook:

 xmonad { manageHook = myManageHook <+> dynamicMasterHook dynHooksRef }

You must include this dynHooksRef value when using the functions in this module:

 xmonad { keys = myKeys `Data.Map.union` Data.Map.fromList 
                   [((modMask conf, xK_i), oneShotHook dynHooksRef 
                    "FFlaunchHook" (className =? "firefox") (doShift "3") 
                    >> spawn "firefox")
                   ,((modMask conf, xK_u), addDynamicHook dynHooksRef 
                     (className =? "example" --> doFloat))
                   ,((modMask conf, xK_y), updatePermanentHook dynHooksRef
                     (const idHook))) ]  -- resets the permanent hook.
initDynamicHooks :: IO (IORef DynamicHooks)Source
Creates the IORef that stores the dynamically created ManageHooks.
dynamicMasterHook :: IORef DynamicHooks -> ManageHookSource
Master ManageHook that must be in your xmonad.hs ManageHook.
addDynamicHook :: IORef DynamicHooks -> ManageHook -> X ()Source
Appends the given ManageHook to the permanent dynamic ManageHook.
updateDynamicHook :: IORef DynamicHooks -> (ManageHook -> ManageHook) -> X ()Source
Modifies the permanent ManageHook with an arbitrary function.
oneShotHook :: IORef DynamicHooks -> Query Bool -> ManageHook -> X ()Source

Creates a one-shot ManageHook. Note that you have to specify the two parts of the ManageHook separately. Where you would usually write:

 className =? "example" --> doFloat

you must call oneShotHook as

 oneShotHook dynHooksRef (className =? "example) doFloat
Produced by Haddock version 2.4.2