Fix wallpaper persistence, tray icons, Booru bugs, session launcher

- 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)
This commit is contained in:
Nexoniarz 2026-08-30 15:48:06 +02:00
commit ea7fefbba8
7 changed files with 96 additions and 4 deletions

View file

@ -76,7 +76,19 @@ PanelWindow {
delegate: IconImage {
id: trayIcon
implicitSize: 18
source: Quickshell.iconPath(modelData.icon, "")
// Only resolve through the icon theme when this is
// actually a themed icon name (e.g. Steam's
// "steam_tray_mono"). Apps that only ever supply a raw
// IconPixmap over the SNI protocol and no IconName at
// all (confirmed via busctl: Vesktop's tray item has no
// IconName property) get an already-usable image:// URL
// back from modelData.icon instead — running that
// through iconPath(), a name/path resolver, mangled it
// into nothing, which is what rendered as a broken-
// texture checkerboard instead of the actual icon.
source: modelData.icon.includes("://")
? modelData.icon
: Quickshell.iconPath(modelData.icon, "")
MouseArea {
anchors.fill: parent
hoverEnabled: true