From b64ea797bfff603a65e968c334eb496aade2ec93 Mon Sep 17 00:00:00 2001 From: Daniele Fucini Date: Sat, 10 Oct 2026 19:39:04 +0200 Subject: [PATCH] Make xmobar workspaces clickable Clicking a workspace switches to it; one visible on the other screen is swapped onto the focused screen. xmobar uses UnsafeXMonadLog so the click actions are kept. --- .config/xmobar/xmobarrc_hdmi | 4 ++-- .config/xmobar/xmobarrc_laptop | 4 ++-- .config/xmonad/xmonad.hs | 4 +++- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/.config/xmobar/xmobarrc_hdmi b/.config/xmobar/xmobarrc_hdmi index fd19e5e..9d87a9e 100644 --- a/.config/xmobar/xmobarrc_hdmi +++ b/.config/xmobar/xmobarrc_hdmi @@ -51,9 +51,9 @@ Config { overrideRedirect = True ] 600 , Run Com "/home/fuxino/.config/xmobar/pactl_volume.sh" [] "pactl_volume" 10 , Run Com "/home/fuxino/.config/xmobar/ens_brief.sh" [] "ens_brief" 18000 - , Run XMonadLog + , Run UnsafeXMonadLog ] , sepChar = "%" , alignSep = "}{" - , template = "  | %XMonadLog% } %uptime% | %multicpu% %coretemp% | %memory% |  %kbd% { %LZIB% · %ens_brief% | %pactl_volume% | %date% " + , template = "  | %UnsafeXMonadLog% } %uptime% | %multicpu% %coretemp% | %memory% |  %kbd% { %LZIB% · %ens_brief% | %pactl_volume% | %date% " } diff --git a/.config/xmobar/xmobarrc_laptop b/.config/xmobar/xmobarrc_laptop index 79abc62..a79a654 100644 --- a/.config/xmobar/xmobarrc_laptop +++ b/.config/xmobar/xmobarrc_laptop @@ -52,9 +52,9 @@ Config { overrideRedirect = True , Run XPropertyLog "_XMONAD_TRAYPAD" , Run Com "/home/fuxino/.config/xmobar/pactl_volume.sh" [] "pactl_volume" 10 , Run Com "/home/fuxino/.config/xmobar/ens_brief.sh" [] "ens_brief" 18000 - , Run XMonadLog + , Run UnsafeXMonadLog ] , sepChar = "%" , alignSep = "}{" - , template = "  | %XMonadLog% } %uptime% | %multicpu% %coretemp% | %memory% |  %kbd% { %LZIB% · %ens_brief% | %pactl_volume% | %date% %_XMONAD_TRAYPAD% " + , template = "  | %UnsafeXMonadLog% } %uptime% | %multicpu% %coretemp% | %memory% |  %kbd% { %LZIB% · %ens_brief% | %pactl_volume% | %date% %_XMONAD_TRAYPAD% " } diff --git a/.config/xmonad/xmonad.hs b/.config/xmonad/xmonad.hs index 404bbc8..f3cfbe0 100644 --- a/.config/xmonad/xmonad.hs +++ b/.config/xmonad/xmonad.hs @@ -21,6 +21,7 @@ import XMonad.Layout.Spiral import XMonad.Layout.Tabbed import XMonad.Layout.ThreeColumns import qualified XMonad.StackSet as W +import XMonad.Util.ClickableWorkspaces import XMonad.Util.EZConfig import qualified XMonad.Util.Hacks as Hacks import XMonad.Util.Loggers @@ -32,6 +33,7 @@ main :: IO () main = xmonad . ewmhFullscreen + . setEwmhSwitchDesktopHook W.greedyView . ewmh . dynamicEasySBs myStatusBars . addRandrChangeHook (spawn myScreenHotplug) @@ -186,7 +188,7 @@ myStatusBars :: ScreenId -> X StatusBarConfig myStatusBars (S i) = do nScreens <- gets (length . W.screens . windowset) let rc = if nScreens > 1 && i /= 1 then "xmobarrc_hdmi" else "xmobarrc_laptop" - pure $ statusBarProp ("xmobar -x " ++ show i ++ " ~/.config/xmobar/" ++ rc) (pure myXmobarPP) + pure $ statusBarProp ("xmobar -x " ++ show i ++ " ~/.config/xmobar/" ++ rc) (clickablePP myXmobarPP) myXmobarPP :: PP myXmobarPP =