From 7827be678f34718d71e987dec905477a6c3d9c7b Mon Sep 17 00:00:00 2001 From: Adam Vogt Date: Wed, 25 Sep 2013 00:47:38 +0200 Subject: fix UrgencyHook and add filterUrgencyHook Ignore-this: 3b7c62275701e6758397977c5c09b744 darcs-hash:20130924224738-1499c-ab95229d2c111aa4f438df0a03e2dfd4429a5a55.gz --- XMonad/Hooks/UrgencyHook.hs | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) (limited to 'XMonad') diff --git a/XMonad/Hooks/UrgencyHook.hs b/XMonad/Hooks/UrgencyHook.hs index f2691fc..afc5b16 100644 --- a/XMonad/Hooks/UrgencyHook.hs +++ b/XMonad/Hooks/UrgencyHook.hs @@ -55,12 +55,13 @@ module XMonad.Hooks.UrgencyHook ( withUrgencyHook, withUrgencyHookC, UrgencyConfig(..), urgencyConfig, SuppressWhen(..), RemindWhen(..), - focusUrgent, clearUrgents, clearUrgency, + focusUrgent, clearUrgents, dzenUrgencyHook, DzenUrgencyHook(..), NoUrgencyHook(..), BorderUrgencyHook(..), FocusHook(..), + filterUrgencyHook, minutes, seconds, -- * Stuff for developers: readUrgents, withUrgents, @@ -528,3 +529,18 @@ data StdoutUrgencyHook = StdoutUrgencyHook deriving (Read, Show) instance UrgencyHook StdoutUrgencyHook where urgencyHook _ w = io $ putStrLn $ "Urgent: " ++ show w + +-- | urgencyhook such that windows on certain workspaces +-- never get urgency set. +-- +-- Useful for scratchpad workspaces perhaps: +-- +-- > main = xmonad (withUrgencyHook (filterUrgencyHook ["NSP", "SP"]) defaultConfig) +filterUrgencyHook :: [WorkspaceId] -> Window -> X () +filterUrgencyHook skips w = do + ws <- gets windowset + case W.findTag w ws of + Just tag -> when (tag `elem` skips) + $ adjustUrgents (delete w) + _ -> return () + -- cgit v1.2.3