4.9 KiB
Why
The current swaync styling is hardcoded in modules/home-manager/swaync/default.nix with a single gruvbox palette and a flat, square-ish look. The user wants a new "Groovebox" theme that feels like iOS notifications — glassy, rounded, with an app icon, title, truncated body, and a small timestamp — and a notification tray that pops from the bottom-left corner. Notification urgency (low / normal / critical) should drive the title color and the border accent so the priority is readable at a glance. The existing swaync Nix module also bakes its colors into the store, which is the pattern the archived theme-switch change set out to undo; this change finishes that work for swaync by moving the stylesheet + colors into ~/.config/colorschemes/groovebox/swaync/ so future themes are dotfiles, not Nix edits.
What Changes
- NEW
~/.config/colorschemes/groovebox/theme directory with aswaync/subdir containingstyle.css(iOS-style layout) andcolors.css(the Groovebox palette). - NEW
swayncNix module is thinned down: it drops the inlinestyle.cssblock and switches to sourcing~/.config/swaync/style.css+colors.cssfrom the active theme dir viaxdg.configFile+lib.file.mkOutOfStoreSymlink(the same pattern the archived theme-switch change planned). - MODIFIED
modules/home-manager/swaync/default.nixsettings:positionX = "left",positionY = "bottom",notification-window-widthwidened,transition-timebumped for the slide-up feel, and any other layout knobs needed for the iOS look. - NEW stylesheet implements iOS aesthetic: rounded glass cards (large border-radius, bg with alpha + blur-friendly shadow), horizontal layout (icon left, title + body right), title color follows urgency (low = cyan, normal = white, critical = red), border accent matches title color, top-right timestamp in small caps, control center tray is blackish with the same glass treatment, notification close button is a chip in the top-right.
- NEW
~/.config/colorschemes/groovebox/swaync/colors.cssdefines the Groovebox palette: dark base (#14171cbackground,#1a1d24card), light text (#e6e6e6), and a set of vibrant accent colors for urgency (red#ff5e7a, amber#f5a623, green#5fe1a7, cyan#5cd6ff, purple#b58cff). - MODIFIED
hosts/jpporta-nixos/home.nixkeepsservices.swaync.enable = true;(no host-side change required beyond the module rewrite). - NOTE the per-theme symlink swap +
swaync-client --reload-cssreload mechanism is owned by the (still-pending)theme-switchchange. This change ships Groovebox as the first theme under the new layout sotheme-switch grooveboxworks once that script lands; the theme-switch script itself is not in scope here.
Capabilities
New Capabilities
swaync-groovebox-theme: the iOS-styled swaync theme (Groovebox palette + new layout) shipped as the first theme under the~/.config/colorschemes/<theme>/swaync/layout.
Modified Capabilities
- None. Existing
power-profile-managementspec is unrelated. The archivedtheme-colors-sourcesspec from2026-07-13-theme-switchis not a currentopenspec/specs/entry, so it isn't a "modified" target — but the intent of D4 there (swaync reads colors from the active theme dir, not from Nix) is satisfied for the Groovebox theme by this change.
Impact
- Code:
modules/home-manager/swaync/default.nix— thin: drop the inlinestyle.css, pointxdg.configFile."swaync/style.css"andxdg.configFile."swaync/colors.css"at out-of-store symlinks to~/.config/colorschemes/.active/swaync/.~/.config/colorschemes/groovebox/swaync/style.css— new (iOS layout).~/.config/colorschemes/groovebox/swaync/colors.css— new (Groovebox palette).~/.config/colorschemes/groovebox/meta— new (name=Groovebox\nmode=dark) for futuretheme-pickercompatibility.
- System:
swaync-client --reload-cssbecomes the live-reload path (nohome-manager switchon tweaks). The symlink target depends on~/.config/colorschemes/.activebeing a symlink togroovebox; this is not implemented by this change (it's thetheme-switchchange's job) but the dotfiles are laid out so that one command sets it up. - First-run order:
- Apply this change (
home-manager switch). - Manually point
~/.config/colorschemes/.activeatgroovebox(or wait for thetheme-switchchange to do it). swaync-client --reload-css(or restart swaync).
- Apply this change (
- User: visual change — bigger rounded cards, icons visible, timestamp shown, urgency color-coded, tray bottom-left. No new commands, no new dependencies.
- Out of scope:
theme-switchscript, picker, hook, gsettings flip, hyprland blur rules for the new swaync notification geometry (the existing blur rules inmodules/home-manager/hyprland/default.nixstill match theswaync-notification-windownamespace and don't need to change).