From d4dfaae6fde9c60dd194baadc6b17053a1527b74 Mon Sep 17 00:00:00 2001 From: Ivan Malison Date: Wed, 18 Feb 2026 00:51:31 -0800 Subject: [PATCH] taffybar config: stack sun+lock widget --- dotfiles/config/taffybar/taffybar.css | 6 ++++++ dotfiles/config/taffybar/taffybar.hs | 25 ++++++++++++++++++++++--- 2 files changed, 28 insertions(+), 3 deletions(-) diff --git a/dotfiles/config/taffybar/taffybar.css b/dotfiles/config/taffybar/taffybar.css index 6adce1b7..dc461fce 100644 --- a/dotfiles/config/taffybar/taffybar.css +++ b/dotfiles/config/taffybar/taffybar.css @@ -38,6 +38,12 @@ padding-right: 8px; } +/* Stacked sun/lock pill: give each row a touch of horizontal breathing room. */ +.sun-lock .wlsunset, +.sun-lock .screen-lock { + padding: 0px 4px; +} + /* The main bar container. border-radius matches the widget squircles (6px) so the bar itself has softly rounded corners. */ .taffy-box { diff --git a/dotfiles/config/taffybar/taffybar.hs b/dotfiles/config/taffybar/taffybar.hs index a24e8cc2..c259b29b 100644 --- a/dotfiles/config/taffybar/taffybar.hs +++ b/dotfiles/config/taffybar/taffybar.hs @@ -444,6 +444,26 @@ wlsunsetWidget = { Wlsunset.wlsunsetWidgetIcon = T.pack "\xF0599" <> " Sun" } +simplifiedScreenLockWidget :: TaffyIO Gtk.Widget +simplifiedScreenLockWidget = + -- Inner widget: no extra pill wrapping (the combiner provides that). + ScreenLock.screenLockNewWithConfig + ScreenLock.defaultScreenLockConfig + { ScreenLock.screenLockIcon = T.pack "\xF023" + } + +simplifiedWlsunsetWidget :: TaffyIO Gtk.Widget +simplifiedWlsunsetWidget = + -- Inner widget: no extra pill wrapping (the combiner provides that). + Wlsunset.wlsunsetNewWithConfig + Wlsunset.defaultWlsunsetWidgetConfig + { Wlsunset.wlsunsetWidgetIcon = T.pack "\xF0599" + } + +sunLockWidget :: TaffyIO Gtk.Widget +sunLockWidget = + stackInPill "sun-lock" [simplifiedWlsunsetWidget, simplifiedScreenLockWidget] + sniTrayWidget :: TaffyIO Gtk.Widget sniTrayWidget = do -- If the Haskell backend regresses, flip at runtime: @@ -468,7 +488,7 @@ startWidgetsForBackend backend = endWidgetsForHost :: String -> [TaffyIO Gtk.Widget] endWidgetsForHost hostName = - let baseEndWidgets = [audioWidget, ramSwapWidget, diskUsageWidget, networkWidget, screenLockWidget, wlsunsetWidget, mprisWidget] + let baseEndWidgets = [audioWidget, ramSwapWidget, diskUsageWidget, networkWidget, sunLockWidget, mprisWidget] laptopEndWidgets = [ batteryWidget, asusWidget, @@ -476,8 +496,7 @@ endWidgetsForHost hostName = ramSwapWidget, diskUsageWidget, networkWidget, - screenLockWidget, - wlsunsetWidget, + sunLockWidget, mprisWidget ] in if hostName `elem` laptopHosts