diff options
Diffstat (limited to 'xmonad.hs')
-rw-r--r-- | xmonad.hs | 41 |
1 files changed, 28 insertions, 13 deletions
@@ -4,6 +4,7 @@ import XMonad.Actions.CycleWS import XMonad.Hooks.EwmhDesktops import XMonad.Hooks.StatusBar import XMonad.Hooks.StatusBar.PP +import XMonad.Layout.IndependentScreens import XMonad.Layout.Renamed import XMonad.Layout.Spacing import XMonad.Prompt @@ -20,7 +21,8 @@ grey2 = "#b8b8b8" grey3 = "#f8f8f8" main :: IO () -main = +main = do + nScreens <- countScreens xmonad . ewmhFullscreen . ewmh @@ -28,15 +30,18 @@ main = ( statusBarProp "xmobar" ( pure - def - { ppSep = "" - , ppWsSep = "" - , ppHiddenNoWindows = xmobarColor grey2 grey0 . pad - , ppCurrent = xmobarColor grey3 primary . pad - , ppHidden = xmobarBorder "Top" primary 2 . xmobarColor grey2 grey0 . pad - , ppTitle = const "" - , ppLayout = xmobarColor grey2 grey0 . pad - } + ( marshallPP + (S 0) + def + { ppSep = "" + , ppWsSep = "" + , ppHiddenNoWindows = xmobarColor grey2 grey0 . pad + , ppCurrent = xmobarColor grey3 primary . pad + , ppHidden = xmobarBorder "Top" primary 2 . xmobarColor grey2 grey0 . pad + , ppTitle = const "" + , ppLayout = xmobarColor grey2 grey0 . pad + } + ) ) ) defToggleStrutsKey @@ -55,6 +60,7 @@ main = } in def { borderWidth = 2 + , workspaces = [marshall s vw | vw <- (map show [1 .. 9]), s <- [0 .. nScreens]] , layoutHook = renamed [Replace "[]="] @@ -80,14 +86,23 @@ main = , ("M-l", sendMessage Expand) , ("M-m", sendMessage $ JumpToLayout "[M]") , ("M-t", sendMessage $ JumpToLayout "[]=") - , ("M-<Tab>", toggleWS) + , + ( "M-<Tab>" + , gets (W.screen . W.current . windowset) + >>= \currentScreen -> + toggleWS' + [ marshall s vw + | vw <- (map show [1 .. 9]) + , s <- [x | x <- [0 .. nScreens], x /= currentScreen] + ] + ) , ("M-S-<Return>", windows W.swapMaster) , ("M-S-<Space>", withFocused $ windows . W.sink) ] ++ concatMap ( \n -> - [ ("M-" ++ n, windows $ W.greedyView n) - , ("M-S-" ++ n, windows $ W.shift n) + [ ("M-" ++ n, windows $ onCurrentScreen W.greedyView n) + , ("M-S-" ++ n, windows $ onCurrentScreen W.shift n) ] ) (map show [1 .. 9]) |