diff options
-rw-r--r-- | Config.hs | 2 | ||||
-rw-r--r-- | Operations.hs | 4 |
2 files changed, 5 insertions, 1 deletions
@@ -136,7 +136,7 @@ keys = M.fromList $ -- Keybindings to each screen : -- mod-wer (underneath 123) switches to physical/Xinerama screens 1 2 and 3 ++ - [((m .|. modMask, key), gets workspace >>= f . (+1) . fromMaybe 0 . W.workspace sc) + [((m .|. modMask, key), screenWorkspace sc >>= f) | (key, sc) <- zip [xK_s, xK_d, xK_f] [0..] , (f, m) <- [(view, 0), (tag, shiftMask)]] diff --git a/Operations.hs b/Operations.hs index 86d6da1..01585e4 100644 --- a/Operations.hs +++ b/Operations.hs @@ -238,6 +238,10 @@ view o = do setTopFocus where n = o-1 +-- | 'screenWorkspace sc' returns the workspace number viewed by 'sc'. +screenWorkspace :: Int -> X Int +screenWorkspace sc = fmap (succ . fromMaybe 0 . W.workspace sc) (gets workspace) + -- | True if window is under management by us isClient :: Window -> X Bool isClient w = liftM (W.member w) (gets workspace) |