diff --git a/.xmonad/xmonad.hs b/.xmonad/xmonad.hs index 93a095b..a1c8633 100644 --- a/.xmonad/xmonad.hs +++ b/.xmonad/xmonad.hs @@ -41,7 +41,7 @@ import XMonad.Hooks.DynamicLog (dynamicLogWithPP, wrap, xmobarPP, xmobarColor, s import XMonad.Hooks.ManageDocks (avoidStruts, manageDocks, ToggleStruts(..)) import XMonad.Hooks.ManageHelpers (isFullscreen, doFullFloat) import XMonad.Hooks.SetWMName -import XMonad.Hooks.EwmhDesktops -- required for xcomposite in obs to work +import XMonad.Hooks.EwmhDesktops -- for some fullscreen events, also for xcomposite in obs. -- Actions import XMonad.Actions.Promote @@ -54,23 +54,24 @@ import XMonad.Actions.GridSelect import XMonad.Actions.MouseResize -- Layouts modifiers -import XMonad.Layout.Renamed (renamed, Rename(Replace)) -import XMonad.Layout.Spacing -import XMonad.Layout.NoBorders import XMonad.Layout.LayoutModifier import XMonad.Layout.LimitWindows (limitWindows, increaseLimit, decreaseLimit) -import XMonad.Layout.WindowArranger (windowArrange, WindowArrangerMsg(..)) -import XMonad.Layout.Reflect (REFLECTX(..), REFLECTY(..)) import XMonad.Layout.MultiToggle (mkToggle, single, EOT(EOT), Toggle(..), (??)) import XMonad.Layout.MultiToggle.Instances (StdTransformers(NBFULL, MIRROR, NOBORDERS)) +import XMonad.Layout.NoBorders +import XMonad.Layout.Reflect (REFLECTX(..), REFLECTY(..)) +import XMonad.Layout.Renamed (renamed, Rename(Replace)) +import XMonad.Layout.Spacing +import XMonad.Layout.WindowArranger (windowArrange, WindowArrangerMsg(..)) import qualified XMonad.Layout.ToggleLayouts as T (toggleLayouts, ToggleLayout(Toggle)) -- Layouts import XMonad.Layout.GridVariants (Grid(Grid)) -import XMonad.Layout.SimplestFloat import XMonad.Layout.OneBig -import XMonad.Layout.ThreeColumns +import XMonad.Layout.SimplestFloat +import XMonad.Layout.Spiral import XMonad.Layout.ResizableTile +import XMonad.Layout.ThreeColumns import XMonad.Layout.ZoomRow (zoomRow, zoomReset, ZoomMessage(ZoomFullToggle)) ------------------------------------------------------------------------ @@ -427,57 +428,49 @@ mySpacing :: Integer -> l a -> XMonad.Layout.LayoutModifier.ModifiedLayout Spaci mySpacing i = spacingRaw False (Border i i i i) True (Border i i i i) True -- This is a variation of the above except no borders are applied -- if fewer than two windows. So a single window has no gaps. -mySpacing' i = spacingRaw False (Border i i i i) True (Border i i i i) True +mySpacing' i = spacingRaw True (Border i i i i) True (Border i i i i) True tall = renamed [Replace "tall"] $ limitWindows 12 $ mySpacing 8 $ ResizableTall 1 (3/100) (1/2) [] +monocle = renamed [Replace "monocle"] + $ limitWindows 20 + $ Full + +floats = renamed [Replace "floats"] + $ limitWindows 20 + $ simplestFloat + grid = renamed [Replace "grid"] $ limitWindows 12 $ mySpacing 8 $ mkToggle (single MIRROR) $ Grid (16/10) -threeCol = renamed [Replace "threeCol"] - $ limitWindows 3 +spirals = renamed [Replace "spirals"] $ mySpacing' 8 - $ ThreeCol 1 (3/100) (1/3) + $ spiral (6/7) + +threeCol = renamed [Replace "threeCol"] + $ limitWindows 7 + $ mySpacing' 4 + $ ThreeCol 1 (3/100) (1/2) threeRow = renamed [Replace "threeRow"] - $ limitWindows 3 + $ limitWindows 7 + $ mySpacing' 4 + -- Mirror takes a layout and rotates it by 90 degrees. + -- So we are applying Mirror to the ThreeCol layout. $ Mirror - $ mkToggle (single MIRROR) zoomRow + $ ThreeCol 1 (3/100) (1/2) -oneBig = renamed [Replace "oneBig"] - $ limitWindows 6 - $ Mirror - $ mkToggle (single MIRROR) - $ mkToggle (single REFLECTX) - $ mkToggle (single REFLECTY) - $ OneBig (5/9) (8/12) - -monocle = renamed [Replace "monocle"] - $ limitWindows 20 - $ Full - -space = renamed [Replace "space"] - $ limitWindows 4 - $ Mirror - $ mkToggle (single MIRROR) - $ mkToggle (single REFLECTX) - $ mkToggle (single REFLECTY) - $ OneBig (2/3) (2/3) - -floats = renamed [Replace "floats"] - $ limitWindows 20 - $ simplestFloat myLayoutHook = avoidStruts $ mouseResize $ windowArrange $ T.toggleLayouts floats $ mkToggle (NBFULL ?? NOBORDERS ?? EOT) $ myDefaultLayout where - myDefaultLayout = tall ||| grid ||| threeCol ||| threeRow ||| oneBig ||| noBorders monocle ||| space ||| floats + myDefaultLayout = tall ||| noBorders monocle ||| floats ||| grid ||| spirals ||| threeCol ||| threeRow ------------------------------------------------------------------------ -- SCRATCHPADS