Results become one flat list — apps, then files, then a web fallback —
so a single set of arrow keys walks all of it and activate() dispatches
on the item kind.
Files come from one fd run per settled keystroke, scoped to $HOME and
capped with --max-results so fd exits as soon as it has enough; no index
and no daemon, so nothing is ever stale. Spaces in the query become
gaps ("report 2024" finds report-2024.pdf) and regex metacharacters are
escaped so a query can't make fd bail.
Web row is last and always there, with bangs (!yt !gh !no !np !w) to
retarget it. Suppressed for arithmetic so Enter keeps copying the sum.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Pinned apps move out of the results list into their own tile grid, three
across, wrapping to further rows. Drag a tile onto another slot to
reorder; the id list is rewritten on release rather than mid-drag, so
nothing shifts under the cursor.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Type arithmetic in the launcher ("3+3") and a result card appears above
the list; click or Enter copies it. Right-click any result to pin it to
the top — pins persist in ~/.local/state and outrank ties in search.
CPU/RAM rows in the server card use a new knobless MeterBar instead of
PillSlider, which read as draggable controls.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Fixed hues stayed legible but read as pasted on. Mix each 25% toward
base0D so they land in the wallpaper's family: err #e0525f -> #b86872,
ok #68c17c -> #5ebb88. statusHarmony is the one knob.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Stylix base01/base02 come off the wallpaper and land off-hue (purple card
over a slate bar). Tint base00 instead: #1c1f26 -> #2f3440 -> #434a5b.
base08-base0C collapse to the same cyan on monochrome wallpapers, so
warning and critical were indistinguishable. Replace with fixed err/warn/
ok/info/alt tokens; base0D stays the themed accent.
Also fixes Theme.base06, which was referenced but never declared.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Shrinks external-access blip after ISP re-IP (was waiting up to 5min for
the dyndns timer). Adds journal logging so WAN events are auditable.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Flushes stale NAT conntrack on WAN IP change; renews lease then restarts
networkd if internet stays down. ntfy on action. Fixes needing a manual
reboot after the ISP re-IP'd us.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>