| Copyright | Ben Boeckel <mathstuf@gmail.com> | 
|---|---|
| License | BSD-style (see LICENSE) | 
| Maintainer | Ben Boeckel <mathstuf@gmail.com> | 
| Stability | unstable | 
| Portability | unportable | 
| Safe Haskell | None | 
| Language | Haskell2010 | 
XMonad.Hooks.ToggleHook
Description
Hook and keybindings for toggling hook behavior.
Synopsis
- toggleHook :: String -> ManageHook -> ManageHook
- toggleHook' :: String -> ManageHook -> ManageHook -> ManageHook
- hookNext :: String -> Bool -> X ()
- toggleHookNext :: String -> X ()
- hookAllNew :: String -> Bool -> X ()
- toggleHookAllNew :: String -> X ()
- willHook :: String -> X Bool
- willHookNext :: String -> X Bool
- willHookAllNew :: String -> X Bool
- willHookNextPP :: String -> (String -> String) -> X (Maybe String)
- willHookAllNewPP :: String -> (String -> String) -> X (Maybe String)
- runLogHook :: X ()
Usage
This module provides actions (that can be set as keybindings) to be able to cause hooks to be occur on a conditional basis.
You can use it by including the following in your ~/.xmonad/xmonad.hs:
import XMonad.Hooks.ToggleHook
and adding 'toggleHook name hook' to your ManageHook where name is the
 name of the hook and hook is the hook to execute based on the state.
myManageHook = toggleHook "float" doFloat <+> manageHook def
Additionally, toggleHook' is provided to toggle between two hooks (rather than on/off).
myManageHook = toggleHook' "oldfocus" (const id) W.focusWindow <+> manageHook def
The hookNext and toggleHookNext functions can be used in key
 bindings to set whether the hook is applied or not.
, ((modm, xK_e), toggleHookNext "float")
hookAllNew and toggleHookAllNew are similar but float all
 spawned windows until disabled again.
, ((modm, xK_r), toggleHookAllNew "float")
The hook
toggleHook :: String -> ManageHook -> ManageHook Source #
This ManageHook will selectively apply a hook as set
 by hookNext and hookAllNew.
toggleHook' :: String -> ManageHook -> ManageHook -> ManageHook Source #
Actions
hookNext :: String -> Bool -> X () Source #
hookNext name True arranges for the next spawned window to
 have the hook name applied, hookNext name False cancels it.
toggleHookNext :: String -> X () Source #
hookAllNew :: String -> Bool -> X () Source #
hookAllNew name True arranges for new windows to
 have the hook name applied, hookAllNew name False cancels it
toggleHookAllNew :: String -> X () Source #
Queries
willHook :: String -> X Bool Source #
Query what will happen at the next ManageHook call for the hook name.
Status bar utilities
The following functions are used to display the current
 state of hookNext and hookAllNew in your
 XMonad.Hooks.StatusBar. willHookNextPP and
 willHookAllNewPP should be added to the
 ppExtras field of your
 XMonad.Hooks.StatusBar.PP.
Use runLogHook to refresh the output of your logHook, so
 that the effects of a hookNext/... will be visible
 immediately:
, ((modm, xK_e), toggleHookNext "float" >> runLogHook)
The String -> String parameters to willHookNextPP and
 willHookAllNewPP will be applied to their output, you
 can use them to set the text color, etc., or you can just
 pass them id.
runLogHook :: X () Source #