From fa32d93dc4ecfc8531b428b26e7b25d66afa3000 Mon Sep 17 00:00:00 2001 From: Derek Taylor Date: Sun, 10 Jul 2022 13:53:32 -0500 Subject: [PATCH] Xmonad moved from 0.15 to 0.17. Several critical changes! --- .xmonad/README.org | 39 +++++++++++++++------------------------ .xmonad/xmonad.hs | 39 +++++++++++++++------------------------ 2 files changed, 30 insertions(+), 48 deletions(-) diff --git a/.xmonad/README.org b/.xmonad/README.org index 1983184..f58c3a7 100644 --- a/.xmonad/README.org +++ b/.xmonad/README.org @@ -71,10 +71,12 @@ import qualified Data.Map as M -- Hooks import XMonad.Hooks.DynamicLog (dynamicLogWithPP, wrap, xmobarPP, xmobarColor, shorten, PP(..)) import XMonad.Hooks.EwmhDesktops -- for some fullscreen events, also for xcomposite in obs. -import XMonad.Hooks.ManageDocks (avoidStruts, docksEventHook, manageDocks, ToggleStruts(..)) +import XMonad.Hooks.ManageDocks (avoidStruts, docks, manageDocks, ToggleStruts(..)) import XMonad.Hooks.ManageHelpers (isFullscreen, doFullFloat, doCenterFloat) import XMonad.Hooks.ServerMode import XMonad.Hooks.SetWMName +import XMonad.Hooks.StatusBar +import XMonad.Hooks.StatusBar.PP import XMonad.Hooks.WorkspaceHistory -- Layouts @@ -89,7 +91,6 @@ import XMonad.Layout.ThreeColumns -- Layouts modifiers import XMonad.Layout.LayoutModifier import XMonad.Layout.LimitWindows (limitWindows, increaseLimit, decreaseLimit) -import XMonad.Layout.Magnifier import XMonad.Layout.MultiToggle (mkToggle, single, EOT(EOT), (??)) import XMonad.Layout.MultiToggle.Instances (StdTransformers(NBFULL, MIRROR, NOBORDERS)) import XMonad.Layout.NoBorders @@ -431,15 +432,6 @@ tall = renamed [Replace "tall"] $ subLayout [] (smartBorders Simplest) $ mySpacing 8 $ ResizableTall 1 (3/100) (1/2) [] -magnify = renamed [Replace "magnify"] - $ limitWindows 5 - $ smartBorders - $ windowNavigation - $ addTabs shrinkText myTabTheme - $ subLayout [] (smartBorders Simplest) - $ magnifier - $ mySpacing 8 - $ ResizableTall 1 (3/100) (1/2) [] monocle = renamed [Replace "monocle"] $ smartBorders $ windowNavigation @@ -519,16 +511,15 @@ myLayoutHook = avoidStruts $ mkToggle (NBFULL ?? NOBORDERS ?? EOT) myDefaultLayout where myDefaultLayout = withBorder myBorderWidth tall - ||| magnify - ||| noBorders monocle - ||| floats - ||| noBorders tabs - ||| grid - ||| spirals - ||| threeCol - ||| threeRow - ||| tallAccordion - ||| wideAccordion + ||| noBorders monocle + ||| floats + ||| noBorders tabs + ||| grid + ||| spirals + ||| threeCol + ||| threeRow + ||| tallAccordion + ||| wideAccordion #+END_SRC * Workspaces @@ -844,9 +835,9 @@ main = do xmproc1 <- spawnPipe ("xmobar -x 1 $HOME/.config/xmobar/" ++ colorScheme ++ "-xmobarrc") xmproc2 <- spawnPipe ("xmobar -x 2 $HOME/.config/xmobar/" ++ colorScheme ++ "-xmobarrc") -- the xmonad, ya know...what the WM is named after! - xmonad $ addDescrKeys' ((mod4Mask, xK_F1), showKeybindings) myKeys $ ewmh def + xmonad $ addDescrKeys' ((mod4Mask, xK_F1), showKeybindings) myKeys $ ewmh $ docks $ def { manageHook = myManageHook <+> manageDocks - , handleEventHook = docksEventHook + --, handleEventHook = docks -- Uncomment this line to enable fullscreen support on things like YouTube/Netflix. -- This works perfect on SINGLE monitor systems. On multi-monitor systems, -- it adds a border around the window if screen does not have focus. So, my solution @@ -860,7 +851,7 @@ main = do , borderWidth = myBorderWidth , normalBorderColor = myNormColor , focusedBorderColor = myFocusColor - , logHook = dynamicLogWithPP $ namedScratchpadFilterOutWorkspacePP $ xmobarPP + , logHook = dynamicLogWithPP $ filterOutWsPP [scratchpadWorkspaceTag] $ xmobarPP { ppOutput = \x -> hPutStrLn xmproc0 x -- xmobar on monitor 1 >> hPutStrLn xmproc1 x -- xmobar on monitor 2 >> hPutStrLn xmproc2 x -- xmobar on monitor 3 diff --git a/.xmonad/xmonad.hs b/.xmonad/xmonad.hs index 72fba7c..689881f 100644 --- a/.xmonad/xmonad.hs +++ b/.xmonad/xmonad.hs @@ -27,10 +27,12 @@ import qualified Data.Map as M -- Hooks import XMonad.Hooks.DynamicLog (dynamicLogWithPP, wrap, xmobarPP, xmobarColor, shorten, PP(..)) import XMonad.Hooks.EwmhDesktops -- for some fullscreen events, also for xcomposite in obs. -import XMonad.Hooks.ManageDocks (avoidStruts, docksEventHook, manageDocks, ToggleStruts(..)) +import XMonad.Hooks.ManageDocks (avoidStruts, docks, manageDocks, ToggleStruts(..)) import XMonad.Hooks.ManageHelpers (isFullscreen, doFullFloat, doCenterFloat) import XMonad.Hooks.ServerMode import XMonad.Hooks.SetWMName +import XMonad.Hooks.StatusBar +import XMonad.Hooks.StatusBar.PP import XMonad.Hooks.WorkspaceHistory -- Layouts @@ -45,7 +47,6 @@ import XMonad.Layout.ThreeColumns -- Layouts modifiers import XMonad.Layout.LayoutModifier import XMonad.Layout.LimitWindows (limitWindows, increaseLimit, decreaseLimit) -import XMonad.Layout.Magnifier import XMonad.Layout.MultiToggle (mkToggle, single, EOT(EOT), (??)) import XMonad.Layout.MultiToggle.Instances (StdTransformers(NBFULL, MIRROR, NOBORDERS)) import XMonad.Layout.NoBorders @@ -344,15 +345,6 @@ tall = renamed [Replace "tall"] $ subLayout [] (smartBorders Simplest) $ mySpacing 8 $ ResizableTall 1 (3/100) (1/2) [] -magnify = renamed [Replace "magnify"] - $ limitWindows 5 - $ smartBorders - $ windowNavigation - $ addTabs shrinkText myTabTheme - $ subLayout [] (smartBorders Simplest) - $ magnifier - $ mySpacing 8 - $ ResizableTall 1 (3/100) (1/2) [] monocle = renamed [Replace "monocle"] $ smartBorders $ windowNavigation @@ -432,16 +424,15 @@ myLayoutHook = avoidStruts $ mkToggle (NBFULL ?? NOBORDERS ?? EOT) myDefaultLayout where myDefaultLayout = withBorder myBorderWidth tall - ||| magnify - ||| noBorders monocle - ||| floats - ||| noBorders tabs - ||| grid - ||| spirals - ||| threeCol - ||| threeRow - ||| tallAccordion - ||| wideAccordion + ||| noBorders monocle + ||| floats + ||| noBorders tabs + ||| grid + ||| spirals + ||| threeCol + ||| threeRow + ||| tallAccordion + ||| wideAccordion -- myWorkspaces = [" 1 ", " 2 ", " 3 ", " 4 ", " 5 ", " 6 ", " 7 ", " 8 ", " 9 "] myWorkspaces = [" dev ", " www ", " sys ", " doc ", " vbox ", " chat ", " mus ", " vid ", " gfx "] @@ -692,9 +683,9 @@ main = do xmproc1 <- spawnPipe ("xmobar -x 1 $HOME/.config/xmobar/" ++ colorScheme ++ "-xmobarrc") xmproc2 <- spawnPipe ("xmobar -x 2 $HOME/.config/xmobar/" ++ colorScheme ++ "-xmobarrc") -- the xmonad, ya know...what the WM is named after! - xmonad $ addDescrKeys' ((mod4Mask, xK_F1), showKeybindings) myKeys $ ewmh def + xmonad $ addDescrKeys' ((mod4Mask, xK_F1), showKeybindings) myKeys $ ewmh $ docks $ def { manageHook = myManageHook <+> manageDocks - , handleEventHook = docksEventHook + --, handleEventHook = docks -- Uncomment this line to enable fullscreen support on things like YouTube/Netflix. -- This works perfect on SINGLE monitor systems. On multi-monitor systems, -- it adds a border around the window if screen does not have focus. So, my solution @@ -708,7 +699,7 @@ main = do , borderWidth = myBorderWidth , normalBorderColor = myNormColor , focusedBorderColor = myFocusColor - , logHook = dynamicLogWithPP $ namedScratchpadFilterOutWorkspacePP $ xmobarPP + , logHook = dynamicLogWithPP $ filterOutWsPP [scratchpadWorkspaceTag] $ xmobarPP { ppOutput = \x -> hPutStrLn xmproc0 x -- xmobar on monitor 1 >> hPutStrLn xmproc1 x -- xmobar on monitor 2 >> hPutStrLn xmproc2 x -- xmobar on monitor 3