X-Git-Url: https://ruderich.org/simon/gitweb/?a=blobdiff_plain;f=xmonad.hs;h=0a898a21b76e5ee484d59a9f0f7d22a53f89a506;hb=a4b24403ee3c377214bd78fafc309b331fda8364;hp=d8f4d2dd9ad3859334387804ef4d171814f520cb;hpb=1a0152eee1680106831815834d8f06b878b3fea6;p=config%2Fdotfiles.git diff --git a/xmonad.hs b/xmonad.hs index d8f4d2d..0a898a2 100644 --- a/xmonad.hs +++ b/xmonad.hs @@ -54,7 +54,9 @@ avoidMaster = W.modify' $ \c -> case c of -- -- named is used to name layouts which allows switching to a specific layout -- (see below), thanks to vav in #xmonad on Freenode (2011-06-12 22:28 CEST). -myLayoutHook = named "Default" (smartBorders $ Mirror tiled) ||| Full ||| named "Vertical" tiled +myLayoutHook = named "Default" (smartBorders $ Mirror tiled) + ||| named "Full" (smartBorders Full) + ||| named "Vertical" (smartBorders tiled) where -- Default tiling algorithm partitions the screen into two panes. tiled = Tall nmaster delta ratio @@ -90,17 +92,28 @@ myManageHook = composeOne , return True -?> doF W.focusDown ] --- Switch to next layout with descriptions in desc, other layouts are skipped. --- This allows switching to some layouts with mappings but excluding them from +-- Switch to next layout, but skip all layouts not in layouts argument. This +-- allows switching to some layouts with mappings but excluding them from -- meta-space (which gets mapped to this function). Thanks to aavogt in --- #xmonad on Freenode for this function (2010-06-13 12:45 CEST), modified to --- take list of layouts to switch to, not layouts to exclude. -nextLayoutIncluding descs = - do broadcastMessage NextLayout - d <- gets (description . W.layout . W.workspace . W.current . windowset) - if d `elem` descs - then refresh - else nextLayoutIncluding descs +-- #xmonad on Freenode for this function (2011-06-13 12:45 CEST) and +-- rootzlevel in #xmonad on Freenode for fixes (2011-06-13 15:20 CEST), +-- modified to take list of layouts to switch to, not layouts to exclude. +nextLayoutIncluding :: [String] -> X () +nextLayoutIncluding layouts = do + cws <- gets (W.workspace . W.current . windowset) + sendMessageWithNoRefresh NextLayout cws + nextLayoutIncluding' layouts + +nextLayoutIncluding' :: [String] -> X () +nextLayoutIncluding' layouts = do + cws <- gets (W.workspace . W.current . windowset) + if not $ (description $ W.layout cws) `elem` layouts + -- Skip over excluded layouts. + then do + sendMessageWithNoRefresh NextLayout cws + nextLayoutIncluding' layouts + -- Found allowed layout, show it. + else refresh myKeys = [ -- Switch to next layout, but only use the listed layouts.