summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCraig Jennings <c@cjennings.net>2026-02-01 13:25:16 -0600
committerCraig Jennings <c@cjennings.net>2026-02-01 13:25:16 -0600
commit1e87ee1599d9660731e86332b1d4e906b40cf2da (patch)
tree6b75c0356e809c1501154ec7e335b228be5d6aca
parent45c15a7fdfbdf2f41803945fe4fe80f56b0c6a0f (diff)
fix(hyprland): dismiss plugin notifications on startup
Add hyprctl dismissnotify after hyprpm update to clear hardcoded plugin initialization messages. Also document set-theme and plugin notification issues in todo.org.
-rw-r--r--dotfiles/hyprland/.config/hypr/hyprland.conf2
-rw-r--r--todo.org54
2 files changed, 55 insertions, 1 deletions
diff --git a/dotfiles/hyprland/.config/hypr/hyprland.conf b/dotfiles/hyprland/.config/hypr/hyprland.conf
index 78c5bdf..aef8d2e 100644
--- a/dotfiles/hyprland/.config/hypr/hyprland.conf
+++ b/dotfiles/hyprland/.config/hypr/hyprland.conf
@@ -17,7 +17,7 @@ exec-once = systemctl --user start xdg-desktop-portal-hyprland xdg-desktop-porta
# Core services
exec-once = /usr/bin/gnome-keyring-daemon --start --components=pkcs11,secrets,ssh
exec-once = dunst > ~/.local/var/log/dunst-$(date +%Y-%m-%d-%H%M%S).log 2>&1
-exec-once = hyprpm update -n && sleep 2 && hyprctl dismissnotify -1
+exec-once = hyprpm -n update && sleep 1 && hyprctl dismissnotify -1
# Desktop appearance (after portal is ready)
exec-once = swww-daemon && sleep 1 && swww img ~/pictures/wallpaper/trondheim-norway.jpg
diff --git a/todo.org b/todo.org
index aea7e6f..4f4f5c2 100644
--- a/todo.org
+++ b/todo.org
@@ -429,6 +429,60 @@ Removed the Hardware Workarounds section from archsetup entirely. The only worka
(AMD Zen 5 RDSEED32) didn't actually suppress the warning message - the kernel detection
runs separately. Proper fix requires BIOS updates from vendors with AGESA microcode.
+*** TODO [#A] Fix set-theme overwriting repo configs on login
+The set-theme script runs on every Hyprland startup (exec-once) and copies theme files
+to symlinked config locations. Since stow creates symlinks pointing to the repo,
+this overwrites repo files with theme directory contents.
+
+**** Problem
+- hyprland.conf:25 runs: exec-once = set-theme "$(cat ~/.config/current-theme...)"
+- set-theme copies from ~/.config/themes/dupre/* to ~/.config/*
+- Since ~/.config/waybar/style.css is a symlink → repo, the REPO file gets overwritten
+- Theme files have OLD versions (wireplumber instead of pulseaudio)
+- Every login reverts fixes made to main config files
+
+**** Root Cause Files
+- dotfiles/hyprland/.config/themes/dupre/waybar.css has #wireplumber (should be #pulseaudio)
+- set-theme script copies theme files over symlinks, overwriting repo
+
+**** Solutions to Consider
+1. Update theme files to match main configs (sync waybar.css → themes/*/waybar.css)
+2. Make theme files the source of truth and symlink TO them instead
+3. Remove set-theme from exec-once (only run manually)
+4. Modify set-theme to detect symlinks and skip or warn
+
+**** Related
+See also: TODO [#C] Review theme config architecture for dunst/fuzzel (same issue)
+
+*** TODO [#A] Suppress Hyprland plugin "Initialized" notifications
+Plugin initialization messages ("[hyprscrolling] Initialized successfully!") appear
+on every login despite removing -n flag from hyprpm update command.
+
+**** ROOT CAUSE FOUND
+The notifications are HARDCODED in the plugin binaries themselves, NOT in hyprpm:
+- strings hyprscrolling.so | grep "Initialized" → "[hyprscrolling] Initialized successfully!"
+- strings xtra-dispatchers.so | grep "Initialized" → "[xtra-dispatchers] Initialized successfully!"
+- hy3.so does NOT have this string (no notification from hy3)
+
+The plugins call HyprlandAPI::addNotification() directly in their PLUGIN_INIT() function.
+The hyprpm -n flag only controls hyprpm's own "[hyprpm] Loaded plugins" message.
+
+**** Solution Options
+1. **Dismiss after delay** (workaround):
+ exec-once = hyprpm reload && sleep 1 && hyprctl dismissnotify -1
+
+2. **File issue with hyprland-plugins** requesting config option to disable
+ URL: https://github.com/hyprwm/hyprland-plugins/issues
+
+3. **Build plugins from source** with notification removed (not practical)
+
+4. **Wait for upstream fix** - this is common complaint, may be addressed
+
+**** References
+- [[https://github.com/hyprwm/Hyprland/issues/8101][Issue #8101: Only notify if something fails]]
+- [[https://wiki.hypr.land/Plugins/Using-Plugins/][Hyprland Plugin Wiki]]
+- Plugin binaries: /var/cache/hyprpm/cjennings/hyprland-plugins/
+
*** TODO [#A] Ensure sleep/suspend works on laptops
Critical functionality for laptop use - current battery drain unacceptable
**NOTE:** This applies to Framework Laptop (velox), not Framework Desktop (ratio)