diff options
-rw-r--r-- | XMonad/Actions/CycleWS.hs | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/XMonad/Actions/CycleWS.hs b/XMonad/Actions/CycleWS.hs index f7a59bb..4bb49cd 100644 --- a/XMonad/Actions/CycleWS.hs +++ b/XMonad/Actions/CycleWS.hs @@ -172,6 +172,7 @@ data WSDirection = Next | Prev -- | What type of workspaces should be included in the cycle? data WSType = EmptyWS -- ^ cycle through empty workspaces | NonEmptyWS -- ^ cycle through non-empty workspaces + | HiddenWS -- ^ cycle through non-visible workspaces | HiddenNonEmptyWS -- ^ cycle through non-empty non-visible workspaces | AnyWS -- ^ cycle through all workspaces | WSIs (X (WindowSpace -> Bool)) @@ -182,6 +183,8 @@ data WSType = EmptyWS -- ^ cycle through empty workspaces wsTypeToPred :: WSType -> X (WindowSpace -> Bool) wsTypeToPred EmptyWS = return (isNothing . stack) wsTypeToPred NonEmptyWS = return (isJust . stack) +wsTypeToPred HiddenWS = do hs <- gets (map tag . hidden . windowset) + return (\w -> tag w `elem` hs) wsTypeToPred HiddenNonEmptyWS = do hs <- gets (map tag . hidden . windowset) return (\w -> isJust (stack w) && tag w `elem` hs) wsTypeToPred AnyWS = return (const True) |