Commit Graph
15 Commits
Author SHA1 Message Date
David Heinemeier Hansson 987588f512 Launch shell commands on active workspace 2026-06-29 11:26:23 -05:00
David Heinemeier Hansson 987addd7da Launch presentation terminals on active workspace 2026-06-29 11:14:07 -05:00
David Heinemeier Hansson 67084b153f Fix launcher keyboard scrolling 2026-06-28 20:46:46 -04:00
David Heinemeier Hansson ba0d2a764f Fix launcher entry removal 2026-06-28 20:46:23 -04:00
David Heinemeier HanssonandClaude Opus 4.8 efd8352dfb launcher: show icons for apps installed mid-session
The launcher resolves each entry's icon through Quickshell.iconPath(),
which bottoms out in Qt's QIconLoader / QIcon::fromTheme. That engine
caches the theme's directory listing — and null results — for the life
of the process, and only re-scans when the icon theme or search paths
change. Nothing in Quickshell 0.3 exposes a way to invalidate it, and a
QML reload doesn't reset it either (QIconLoader is a QtGui process
global, not tied to the QML engine).

So when a user installs a new app while the shell is running, its
.desktop file is picked up live (DesktopEntries is file-watched and the
name appears immediately), but its icon resolves to the cached miss and
renders blank until the whole shell is restarted. That's a poor "I just
installed this" experience.

Fix it without a restart by keeping our own on-disk icon index as a
fallback. When themed lookup returns empty, iconSource() consults a
name->path map built by scanning the XDG icon dirs and /usr/share/
pixmaps (SVGs first, so scalable wins). The scan runs on startup and on
a debounced DesktopEntries change — the same signal that already makes
names appear — and swapping the iconIndex property re-evaluates every
iconSource() binding, so freshly installed icons show up live. Icons Qt
can already resolve are untouched.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-21 15:05:06 +02:00
Ryan Hughes add570dac2 Fix one-sided menu row borders 2026-06-04 12:11:41 -04:00
Ryan Hughes 98ba4a9697 Bring on gradient borders 2026-06-02 11:17:13 -04:00
David Heinemeier Hansson 49ca79081f Extract confirmation dialog 2026-05-29 12:57:43 +02:00
David Heinemeier Hansson 953616dd62 Remove borders from menu highlights 2026-05-26 00:11:03 +02:00
David Heinemeier Hansson 32b642e085 Add launcher uninstall confirmation 2026-05-25 18:32:41 +02:00
David Heinemeier Hansson 37e4da524b Move shell scripts into plugin directories 2026-05-25 14:53:21 +02:00
David Heinemeier Hansson 162e6ce006 Fix launcher filtering and add tests for it 2026-05-25 12:57:58 +02:00
David Heinemeier Hansson c3cabffa44 Use launcher hides list 2026-05-21 12:43:03 +02:00
David Heinemeier Hansson 783cccac3c Consolidate OMARCHY_MENU_FONT lookups onto Style.font.menuFamily
Five plugins (menu, launcher, clipboard, emojis, polkit) each looked up
OMARCHY_MENU_FONT with the same env-or-monospace fallback. Hoist the
resolution into Style so plugins read one source of truth, and so the
fallback follows the real fontconfig family Style already tracks instead
of the literal string "monospace".
2026-05-20 20:31:04 +02:00
David Heinemeier Hansson 41425481db app-launcher to just launcher 2026-05-20 13:57:22 +02:00