From 1b327a059aca3cbf80b894ef9bd30a6e62fbacea Mon Sep 17 00:00:00 2001 From: Tomas Janousek Date: Mon, 15 Feb 2021 17:53:30 +0000 Subject: [PATCH] X.H.UrgencyHook: Generalize filterUrgencyHook to Query Bool --- XMonad/Hooks/UrgencyHook.hs | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/XMonad/Hooks/UrgencyHook.hs b/XMonad/Hooks/UrgencyHook.hs index cb9eebc8..2109a7ea 100644 --- a/XMonad/Hooks/UrgencyHook.hs +++ b/XMonad/Hooks/UrgencyHook.hs @@ -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])