mirror of
https://github.com/xmonad/xmonad-contrib.git
synced 2025-05-19 11:30:22 -07:00
Merge pull request #624 from alternateved/add-usage-section
X.H.DynamicProperty: Add usage section
This commit is contained in:
commit
fa3536b40b
@ -22,20 +22,61 @@
|
|||||||
-- currently ignores properties being removed, in part because you can't
|
-- currently ignores properties being removed, in part because you can't
|
||||||
-- do anything useful in a ManageHook involving nonexistence of a property.
|
-- do anything useful in a ManageHook involving nonexistence of a property.
|
||||||
--
|
--
|
||||||
|
-- This module could also be useful for Electron applications like Spotify
|
||||||
|
-- which sets its WM_CLASS too late for window manager to map it properly.
|
||||||
|
--
|
||||||
-----------------------------------------------------------------------------
|
-----------------------------------------------------------------------------
|
||||||
|
|
||||||
module XMonad.Hooks.DynamicProperty where
|
module XMonad.Hooks.DynamicProperty ( -- * Usage
|
||||||
|
-- $usage
|
||||||
|
|
||||||
|
-- * Documentation
|
||||||
|
dynamicPropertyChange
|
||||||
|
, dynamicTitle
|
||||||
|
) where
|
||||||
|
|
||||||
import XMonad
|
import XMonad
|
||||||
import XMonad.Prelude
|
import XMonad.Prelude
|
||||||
|
|
||||||
|
-- $usage
|
||||||
|
-- You can use this module with the following in your @~\/.xmonad\/xmonad.hs@:
|
||||||
|
--
|
||||||
|
-- > import XMonad.Hooks.DynamicProperty
|
||||||
|
--
|
||||||
|
-- Enable it by including in you handleEventHook definition:
|
||||||
|
--
|
||||||
|
-- > main = xmonad $ def
|
||||||
|
-- > { ...
|
||||||
|
-- > , handleEventHook = dynamicPropertyChange "WM_NAME" (title =? "Spotify" --> doShift "5"))
|
||||||
|
-- > , ...
|
||||||
|
-- > }
|
||||||
|
--
|
||||||
|
-- Or you could create a dynamicManageHook as below:
|
||||||
|
--
|
||||||
|
-- > myDynamicManageHook :: ManageHook
|
||||||
|
-- > myDynamicManageHook =
|
||||||
|
-- > composeAll
|
||||||
|
-- > [ className =? "Spotify" --> doShift (myWorkspaces !! 4),
|
||||||
|
-- > title =? "maybe_special_terminal" <||> title =? "special_terminal" --> doCenterFloat,
|
||||||
|
-- > className =? "dynamicApp" <&&> title =? "dynamic_app" --> doCenterFloat
|
||||||
|
-- > ]
|
||||||
|
--
|
||||||
|
-- And then use it in your handleEventHookDefinition:
|
||||||
|
--
|
||||||
|
-- > main = xmonad $ def
|
||||||
|
-- > { ...
|
||||||
|
-- > , handleEventHook = dynamicPropertyChange "WM_NAME" myDynamicManageHook <+> handleEventHook baseConfig
|
||||||
|
-- > , ...
|
||||||
|
-- > }
|
||||||
|
--
|
||||||
|
|
||||||
-- |
|
-- |
|
||||||
-- Run a 'ManageHook' when a specific property is changed on a window. Note
|
-- Run a 'ManageHook' when a specific property is changed on a window. Note
|
||||||
-- that this will run on any window which changes the property, so you should
|
-- that this will run on any window which changes the property, so you should
|
||||||
-- be very specific in your 'MansgeHook' matching (lots of windows change
|
-- be very specific in your 'ManageHook' matching (lots of windows change
|
||||||
-- their titles on the fly!):
|
-- their titles on the fly!):
|
||||||
--
|
--
|
||||||
-- dynamicPropertyChange "WM_NAME" (className =? "Iceweasel" <&&> title =? "whatever" --> doShift "2")
|
-- > dynamicPropertyChange "WM_NAME" (className =? "Iceweasel" <&&> title =? "whatever" --> doShift "2")
|
||||||
--
|
--
|
||||||
-- Note that the fixity of (-->) won't allow it to be mixed with ($), so you
|
-- Note that the fixity of (-->) won't allow it to be mixed with ($), so you
|
||||||
-- can't use the obvious $ shorthand.
|
-- can't use the obvious $ shorthand.
|
||||||
@ -45,9 +86,11 @@ import XMonad.Prelude
|
|||||||
-- Consider instead phrasing it like any
|
-- Consider instead phrasing it like any
|
||||||
-- other 'ManageHook':
|
-- other 'ManageHook':
|
||||||
--
|
--
|
||||||
|
-- > main = xmonad $ def
|
||||||
|
-- > { ...
|
||||||
-- > , handleEventHook = dynamicPropertyChange "WM_NAME" myDynHook <+> handleEventHook baseConfig
|
-- > , handleEventHook = dynamicPropertyChange "WM_NAME" myDynHook <+> handleEventHook baseConfig
|
||||||
-- >
|
-- > , ...
|
||||||
-- > {- ... -}
|
-- > }
|
||||||
-- >
|
-- >
|
||||||
-- > myDynHook = composeAll [...]
|
-- > myDynHook = composeAll [...]
|
||||||
--
|
--
|
||||||
|
Loading…
x
Reference in New Issue
Block a user