aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBardofSprites <[email protected]>2025-03-06 17:16:50 -0500
committerBardofSprites <[email protected]>2025-03-06 17:16:50 -0500
commite742aef2a71ef91891973ea286901bca55a06ee1 (patch)
treeb5e1cf07f2fe147d49a810cf7f6b76f79ed43b04
parent6b9d8fe5b4fb29a5cbe6079ff64957b24df2ba72 (diff)
gaps, huge xmobar update, and gruber theme
-rw-r--r--xmonad/.config/xmonad/xmonad.hs86
1 files changed, 64 insertions, 22 deletions
diff --git a/xmonad/.config/xmonad/xmonad.hs b/xmonad/.config/xmonad/xmonad.hs
index 864148d..5b35fc3 100644
--- a/xmonad/.config/xmonad/xmonad.hs
+++ b/xmonad/.config/xmonad/xmonad.hs
@@ -5,38 +5,84 @@ import XMonad.Util.EZConfig
import XMonad.Layout.Magnifier
import XMonad.Layout.ThreeColumns
import XMonad.Layout.Spacing
+import XMonad.Layout.Gaps
import XMonad.Layout.IndependentScreens
import XMonad.Actions.PhysicalScreens
import XMonad.Actions.CycleWS
+-- xmobar
+import XMonad.Util.Run(spawnPipe)
+import XMonad.Hooks.DynamicLog
+import System.IO
+import XMonad.Hooks.ManageDocks
+
import qualified XMonad.StackSet as W
import XMonad.Hooks.EwmhDesktops
main :: IO()
-main = xmonad
+main = do
+ xmproc <- spawnPipe "xmobar"
+ xmonad
. ewmhFullscreen
. ewmh
- $ myConfig
+ $ myConfig xmproc
term :: String
term = "st"
-myConfig = def
+-- Gruber Darker Colors (using your provided theme)
+fg = "#e4e4ef"
+bg = "#181818"
+bg_alt = "#282828"
+red = "#f43841"
+green = "#73c936"
+yellow = "#ffdd33"
+orange = "#cc8c3c"
+wisteria = "#9e95c7"
+
+myConfig xmproc = def
{
modMask = mod4Mask
- , layoutHook = myLayout
- , workspaces = ["1", "2", "3", "4", "5", "6", "7", "8", "9"]
- -- , manageHook = myManageHook
+ , layoutHook = spacingRaw False (Border 15 5 5 5) True (Border 15 5 5 5) True
+ $ myLayout
+ , workspaces = myWorkspaces
+ , logHook = dynamicLogWithPP xmobarPP
+ { ppOutput = hPutStrLn xmproc
+ , ppTitle = xmobarColor green "" . shorten 50
+ , ppLayout = const "" -- Hide layout name
+ , ppSep = " | "
+ , ppCurrent = xmobarColor orange "" . wrap "[" "]" -- Focused workspace with brackets
+ , ppVisible = wrap "[" "]" -- Visible workspaces with brackets
+ , ppHidden = \ws -> if ws == "NSP" then "" else wrap "[" "]" ws -- Hide workspaces with no windows, except for empty ones (NSP = no space)
+ , ppHiddenNoWindows = \ws -> "" -- Don't show workspaces with no windows
+ , ppUrgent = xmobarColor "red" "" . wrap "!" "!" -- Urgent workspaces
+ }
+ , borderWidth = 3
+ , focusedBorderColor = orange -- Focused window border color
+ , normalBorderColor = bg_alt -- Unfocused window border color
}
- `additionalKeysP`
- [("M-q", kill)
+ `additionalKeysP` myKeys
+
+myWorkspaces = ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10"]
+myKeys =
+ [("M-q", kill)
-- window management
, ("M-S-<Space>", withFocused $ windows . W.sink)
-- workspaces
+ , ("M-1", windows $ W.view (myWorkspaces !! 0))
+ , ("M-2", windows $ W.view (myWorkspaces !! 1))
+ , ("M-3", windows $ W.view (myWorkspaces !! 2))
+ , ("M-4", windows $ W.view (myWorkspaces !! 3))
+ , ("M-5", windows $ W.view (myWorkspaces !! 4))
+ , ("M-6", windows $ W.view (myWorkspaces !! 5))
+ , ("M-7", windows $ W.view (myWorkspaces !! 6))
+ , ("M-8", windows $ W.view (myWorkspaces !! 7))
+ , ("M-9", windows $ W.view (myWorkspaces !! 8))
+ , ("M-0", windows $ W.view (myWorkspaces !! 9))
-- system programs
, ("M-<Return>", spawn term)
@@ -44,21 +90,18 @@ myConfig = def
, ("M-S-x", spawn "sysact")
-- media keys
- , ("<XF86AudioPlay>", spawn "playerctl playbindsym")
- , ("<XF86AudioPause>", spawn "playerctl pausebindsym")
- , ("<XF86AudioNext>", spawn "playerctl nextbindsym")
- , ("<XF86AudioPrev>", spawn "playerctl previou")
- , ("XF86AudioRaiseVolume", spawn "pactl set-sink-volume @DEFAULT_SINK@ +10% ")
- , ("XF86AudioLowerVolume", spawn "pactl set-sink-volume @DEFAULT_SINK@ -10% ")
- , ("XF86AudioMute", spawn "pactl set-sink-mute @DEFAULT_SINK@ toggle ")
- , ("XF86AudioMicMute", spawn "pactl set-source-mute @DEFAULT_SOURCE@ toggle ")
-
+ , ("<XF86AudioPlay>", spawn "playerctl play")
, ("M-S-p", spawn "playerctl pause")
+ , ("<XF86AudioPause>", spawn "playerctl pause")
+ , ("<XF86AudioNext>", spawn "playerctl next")
+ , ("<XF86AudioPrev>", spawn "playerctl previous")
+ , ("<XF86AudioRaiseVolume>", spawn "wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+")
+ , ("<XF86AudioLowerVolume>", spawn "wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-")
+ , ("<XF86AudioMute>", spawn "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle")
-- main programs
- , ("M-w", spawn "librewolf-bin")
- , ("M-S-w", spawn "firefox-bin")
- -- , ("M")
+ -- , ("M-w", spawn "librewolf-bin")
+ , ("M-S-w", spawn "firefox")
-- emacs
, ("M-e", spawn "emacs")
@@ -71,8 +114,7 @@ myConfig = def
-- mouse bindings
]
-myLayout = spacingRaw True (Border 10 10 10 10) True (Border 10 10 10 10) True $
- (tiled ||| Mirror tiled ||| Full ||| threeCol)
+myLayout = tiled ||| Mirror tiled ||| Full ||| threeCol
where
threeCol = magnifiercz' 1.3 $ ThreeColMid nmaster delta ratio
tiled = Tall nmaster delta ratio