- Add qt-theme-set: a working Qt theming pipeline via qt6ct (the
QT_QPA_PLATFORMTHEME=qt6ct env var was pointing at a platform theme
plugin that wasn't even installed, so every Qt app fell back to its
own default style). Also regenerates kdeglobals' KColorScheme groups
and sets QT_QUICK_CONTROLS_STYLE=org.kde.desktop for Kirigami-based
KDE apps, whose QML-drawn chrome ignores QPalette/qt6ct entirely.
Gwenview's dialogs/content now follow the theme; its toolbar/statusbar
chrome is a known remaining gap tied to Kirigami's platform-theme
detection outside a full Plasma session
- Add GTK2 compat (~/.gtkrc-2.0: icon theme + font follow the theme;
no dark variant exists for GTK2's Adwaita engine)
- Add modules/default-apps.nix: Gwenview/Ark as system-default image
viewer/archive manager via /etc/xdg/mimeapps.list, LibreOffice
(Qt6 build), and a working Thunar "Open Terminal Here" (it shipped
calling exo-open, which isn't installed and never resolved)
- Fix display-set.sh: mktemp defaulted to /tmp, a different filesystem
than ~/.config/hypr here, making the mv into display.conf a
non-atomic copy+unlink. Hyprland's file watcher could catch it
mid-replace and throw "source= globbing error: found no match" on
any monitor mode/orientation change. Stress-tested with 60 concurrent
write+reload cycles after the fix with zero errors
- Add Osd.qml: themed top-center popup for volume/mic/brightness/media
changes. Volume and mic react directly to Pipewire so they fire for
any change, not just our own keybinds; brightness is notified
explicitly (no live service exists for DDC/CI writes); media is
driven by two playerctl --follow watchers (status + metadata) so
track changes, pause/resume, and stop all show correctly without
double-firing
- Add Super+Shift+Z/X to toggle the Left/RightBar sidebars, via a new
Quickshell IpcHandler wired to the same expand/collapse logic as the
BottomBar arrows
- Add function-key binds for volume up/down/mute, mic mute, brightness
up/down, and media play/pause/stop/next/prev (wpctl/playerctl);
extend brightness-ctl with relative up/down steps for both the
backlight and DDC/CI paths
- Add gh and playerctl to packages
- Persist last-set wallpaper and restore it via exec-once, since
hyprpaper/mpvpaper start every session with nothing loaded
- Fix Vesktop's system tray icon rendering as a broken texture: only
resolve tray icons through the icon theme when they're actual names,
not raw pixmap-sourced image:// URLs
- Launch Hyprland via start-hyprland (its official watchdog launcher)
instead of the raw binary, removing the startup warning and adding
hang recovery
- Fix Booru panel: Lewds toggle now actually persists, tag autocomplete
no longer drops/races overlapping requests, and pagination wraps
instead of overflowing off-screen
- Remove the redundant gap between windows and sidebars/tiles
(gaps_in/gaps_out, and duplicate flyout margins stacked on top of
Hyprland's automatic exclusive-zone inset)