mirror of
https://github.com/xmonad/xmonad-contrib.git
synced 2025-08-15 20:23:55 -07:00
X.H.UrgencyHook: Generalize filterUrgencyHook to Query Bool
This commit is contained in:
@@ -58,7 +58,7 @@ module XMonad.Hooks.UrgencyHook (
|
|||||||
NoUrgencyHook(..),
|
NoUrgencyHook(..),
|
||||||
BorderUrgencyHook(..),
|
BorderUrgencyHook(..),
|
||||||
FocusHook(..),
|
FocusHook(..),
|
||||||
filterUrgencyHook,
|
filterUrgencyHook, filterUrgencyHook',
|
||||||
minutes, seconds,
|
minutes, seconds,
|
||||||
-- * Stuff for developers:
|
-- * Stuff for developers:
|
||||||
readUrgents, withUrgents, clearUrgents',
|
readUrgents, withUrgents, clearUrgents',
|
||||||
@@ -72,6 +72,7 @@ module XMonad.Hooks.UrgencyHook (
|
|||||||
import XMonad
|
import XMonad
|
||||||
import qualified XMonad.StackSet as W
|
import qualified XMonad.StackSet as W
|
||||||
|
|
||||||
|
import XMonad.Hooks.ManageHelpers (windowTag)
|
||||||
import XMonad.Util.Dzen (dzenWithArgs, seconds)
|
import XMonad.Util.Dzen (dzenWithArgs, seconds)
|
||||||
import qualified XMonad.Util.ExtensibleState as XS
|
import qualified XMonad.Util.ExtensibleState as XS
|
||||||
import XMonad.Util.NamedWindows (getName)
|
import XMonad.Util.NamedWindows (getName)
|
||||||
@@ -537,9 +538,9 @@ instance UrgencyHook StdoutUrgencyHook where
|
|||||||
--
|
--
|
||||||
-- > main = xmonad (withUrgencyHook (filterUrgencyHook ["NSP", "SP"]) def)
|
-- > main = xmonad (withUrgencyHook (filterUrgencyHook ["NSP", "SP"]) def)
|
||||||
filterUrgencyHook :: [WorkspaceId] -> Window -> X ()
|
filterUrgencyHook :: [WorkspaceId] -> Window -> X ()
|
||||||
filterUrgencyHook skips w = do
|
filterUrgencyHook skips = filterUrgencyHook' $ maybe False (`elem` skips) <$> windowTag
|
||||||
ws <- gets windowset
|
|
||||||
case W.findTag w ws of
|
-- | 'filterUrgencyHook' that takes a generic 'Query' to select which windows
|
||||||
Just tag | tag `elem` skips -> do
|
-- should never be marked urgent.
|
||||||
clearUrgents' [w]
|
filterUrgencyHook' :: Query Bool -> Window -> X ()
|
||||||
_ -> return ()
|
filterUrgencyHook' q w = whenX (runQuery q w) (clearUrgents' [w])
|
||||||
|
Reference in New Issue
Block a user