1
0
mirror of https://github.com/xmonad/xmonad-contrib.git synced 2025-08-13 19:25:52 -07:00

X.H.UrgencyHook: Generalize filterUrgencyHook to Query Bool

This commit is contained in:
Tomas Janousek
2021-02-15 17:53:30 +00:00
parent d49f7a49a2
commit 1b327a059a

@@ -58,7 +58,7 @@ module XMonad.Hooks.UrgencyHook (
NoUrgencyHook(..),
BorderUrgencyHook(..),
FocusHook(..),
filterUrgencyHook,
filterUrgencyHook, filterUrgencyHook',
minutes, seconds,
-- * Stuff for developers:
readUrgents, withUrgents, clearUrgents',
@@ -72,6 +72,7 @@ module XMonad.Hooks.UrgencyHook (
import XMonad
import qualified XMonad.StackSet as W
import XMonad.Hooks.ManageHelpers (windowTag)
import XMonad.Util.Dzen (dzenWithArgs, seconds)
import qualified XMonad.Util.ExtensibleState as XS
import XMonad.Util.NamedWindows (getName)
@@ -537,9 +538,9 @@ instance UrgencyHook StdoutUrgencyHook where
--
-- > main = xmonad (withUrgencyHook (filterUrgencyHook ["NSP", "SP"]) def)
filterUrgencyHook :: [WorkspaceId] -> Window -> X ()
filterUrgencyHook skips w = do
ws <- gets windowset
case W.findTag w ws of
Just tag | tag `elem` skips -> do
clearUrgents' [w]
_ -> return ()
filterUrgencyHook skips = filterUrgencyHook' $ maybe False (`elem` skips) <$> windowTag
-- | 'filterUrgencyHook' that takes a generic 'Query' to select which windows
-- should never be marked urgent.
filterUrgencyHook' :: Query Bool -> Window -> X ()
filterUrgencyHook' q w = whenX (runQuery q w) (clearUrgents' [w])