Commit Graph
100 Commits
Author SHA1 Message Date
David Heinemeier Hansson 8f6e815c78 Recover internal monitor before sleep
Run internal monitor toggle recovery before the sleep lock path and retry recovery after Hyprland monitor removal events. This gives dock/lid-close races time to settle before suspend or external-display reconnects leave the session without a safe internal display fallback.
2026-06-21 15:42:24 +02: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
David Heinemeier Hansson 4823e05c00 Make the highlight more subtle
And stick with the same gaps setup as all other themes
2026-06-21 15:02:49 +02:00
David Heinemeier Hansson 36c1bc7dc5 Refer to Quattro 2026-06-21 14:59:18 +02:00
David Heinemeier Hansson 428b9c7b29 Use omarchy-upgrade-to-quattro 2026-06-21 12:31:06 +02:00
David Heinemeier Hansson c2e5614b65 Add missing overwrites 2026-06-21 12:25:45 +02:00
David Heinemeier Hansson 35a6940992 Just 3 seconds of screen on after lock 2026-06-20 22:27:03 +02:00
David Heinemeier Hansson 8ae975357a Make sure we never get in-panel scrolling when we shouldn' 2026-06-20 22:19:53 +02:00
David Heinemeier Hansson d74ed24db7 No notifications for udiskie 2026-06-20 22:19:53 +02:00
David Heinemeier Hansson c62108fa0b Fix current theme state migration 2026-06-20 14:36:27 +02:00
David Heinemeier Hansson a2620e2fe0 Add missing migration for udiskie 2026-06-18 16:53:33 +02:00
David Heinemeier Hansson 38bb61b685 Overly defensive 2026-06-08 17:48:09 +02:00
David Heinemeier Hansson 73d47390c4 Improve Bluetooth panel connected devices 2026-06-08 17:20:59 +02:00
David Heinemeier Hansson 42a0b25e01 Merge branch 'omarchy-shell' into quattro 2026-06-08 16:56:51 +02:00
David Heinemeier Hansson 8e65151fb8 Show the whole disk 2026-06-08 16:44:17 +02:00
David Heinemeier Hansson baff7f8080 Make user for now 2026-06-08 16:41:56 +02:00
David Heinemeier Hansson 01bdd06e10 No more elephant 2026-06-08 16:40:54 +02:00
David Heinemeier Hansson cbc7c8f30a Use dua 2026-06-08 16:38:17 +02:00
David Heinemeier Hansson 8807a9c889 Merge branch 'dev' into quattro 2026-06-08 16:36:51 +02:00
David Heinemeier Hansson 6cec42d97d Merge branch 'omarchy-4' into quattro 2026-06-08 16:28:52 +02:00
David Heinemeier Hansson 3d4bb9ab81 Add splitters to all panels... for now 2026-06-07 20:58:02 +02:00
David Heinemeier Hansson 740f4e2c82 Fix power panel discharge state 2026-06-06 18:01:14 +02:00
David Heinemeier Hansson b83505d738 More small adjustments 2026-06-06 17:21:09 +02:00
David Heinemeier Hansson 43e758ed32 Align network panel details 2026-06-06 17:08:02 +02:00
David Heinemeier Hansson 166b395203 Polish bar icon spacing 2026-06-06 16:43:00 +02:00
David Heinemeier Hansson d7d08d1b17 Improve Tailscale panel controls 2026-06-06 15:48:56 +02:00
David Heinemeier HanssonandClaude Opus 4.8 e5290b0a12 Add yt-dlp "Download Video" Chromium extension
Download the current page's video with yt-dlp via Alt+Shift+D or a click
on the toolbar icon. A native-messaging host runs the download, shows live
progress on the Quickshell OSD, and posts a clickable "Download complete"
toast that opens the file in mpv.

- Extension: pinned key for a stable id, green download-video icon,
  keyboard command + toolbar action (reads the active tab URL).
- Native host (omarchy-chromium-ytdlp-host): verifies the URL with
  yt-dlp --simulate (else "No video found"), streams progress to the OSD
  (time-throttled to ~4/s), saves to ~/Videos, opens mpv on click.
- Installer (omarchy-install-chromium-ytdlp) writes the native-messaging
  manifest into installed Chromium/Chrome/Brave/Edge profiles; wired into
  browser install and chromium refresh, with a migration for existing users.
- omarchy-osd: add -d/--duration so the OSD can persist during a download.
- Add yt-dlp to base packages, load the extension via --load-extension,
  and document the Alt+Shift+D binding.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-04 11:15:28 +02:00
David Heinemeier Hansson 1d6467c91c Add explicit toggle states 2026-06-04 11:14:04 +02:00
David Heinemeier Hansson c31825dca4 Apparently this needs to be said 2026-06-04 10:16:00 +02:00
David Heinemeier Hansson 4884f8c64a Persist watched clipboard text 2026-06-04 10:09:38 +02:00
David Heinemeier Hansson 79470dde92 Refine shell panel and lock theming 2026-06-03 22:14:48 +02:00
David Heinemeier Hansson 3cdfb52a74 Didn't actually like the stock hyprland active color
Especially not on the notifications or lock screen
2026-06-03 21:05:19 +02:00
David Heinemeier Hansson 7a47604e27 Show which panel is open 2026-06-03 14:48:47 +02:00
David Heinemeier Hansson d35957b23c Better spacing 2026-06-03 13:59:33 +02:00
David Heinemeier Hansson e1099e4413 Match lock border to Hyprland style 2026-06-03 13:10:48 +02:00
David Heinemeier Hansson a8080d4016 All click targets should have click hands 2026-06-03 11:27:09 +02:00
David Heinemeier Hansson 198d01f8bc Reveal all hidden tooling when hovering over the center part of the bar 2026-06-03 08:23:32 +02:00
David Heinemeier Hansson ddc013aea9 More subtle tweaks to the lock screen 2026-06-03 08:22:50 +02:00
David Heinemeier Hansson 807f500888 More finessing of lock screen proportions 2026-06-03 07:56:48 +02:00
David Heinemeier Hansson 5812a7d04a No leading zeros on the date in the bar 2026-06-01 11:59:30 +02:00
David Heinemeier Hansson a4bb7a46f1 Fix tiled fullscreen toggle 2026-05-29 15:59:13 +02:00
David Heinemeier Hansson 6f0d9d53cd Keep sensitive clipboard contents out of history
Restore the clipboard watcher behavior that drops CLIPBOARD_STATE=sensitive events, which password managers use for copied secrets.

Use the same sensitive foreground clipboard path for emoji insertion instead of a custom history marker, and keep the password-manager MIME hint ignored as a fallback.
2026-05-29 15:25:21 +02:00
David Heinemeier Hansson cd2be9da25 Insert emojis without persisting clipboard entries
Keep the first emoji result selected whenever results exist, including after search filtering, so Enter inserts immediately.

Route emoji insertion through a hidden helper that serves a transient sensitive clipboard entry long enough for Shift+Insert, then stops that clipboard owner.

Mark transient emoji inserts so clipboard history skips only that event while continuing to record normal terminal copies.
2026-05-29 14:54:49 +02:00
David Heinemeier Hansson 16a4bc8106 Migrate terminal Shift+Return bindings
Update existing terminal configs to encode Shift+Return as CSI-u so Codex and other TUIs can distinguish it from Return without tmux seeing it as Alt+Return. Also ensures Alt+Shift+Return CSI-u bindings remain present for tmux horizontal splits across Kitty, Ghostty, and Foot.
2026-05-29 14:28:03 +02:00
David Heinemeier Hansson bef9a80c25 Fix Shift+Return terminal encoding
Encode Shift+Return as CSI-u across supported terminals so TUIs such as Codex can distinguish it from plain Return. This replaces Alacritty's ambiguous ESC+Return mapping, which tmux interpreted as Alt+Return and used to split panes, while preserving Alt+Shift+Return as CSI-u for tmux's M-S-Enter binding.
2026-05-29 14:18:56 +02:00
David Heinemeier Hansson a0cf4b07b2 Show clipboard file entries without inline video playback 2026-05-29 14:14:40 +02:00
David Heinemeier Hansson f60c038050 Open clipboard entries from history 2026-05-29 13:54:55 +02:00
David Heinemeier Hansson 766c3b9a3f Polish clipboard history display 2026-05-29 13:35:28 +02:00
David Heinemeier Hansson 4b003d2e39 Simplify clipboard preview divider 2026-05-29 13:15:11 +02:00
David Heinemeier Hansson bb0d9dd2e3 Copy clipboard history selection with Shift Return 2026-05-29 13:15:00 +02:00
David Heinemeier Hansson cf3a481224 Confirm clearing clipboard history 2026-05-29 12:57:46 +02:00
David Heinemeier Hansson 49ca79081f Extract confirmation dialog 2026-05-29 12:57:43 +02:00
David Heinemeier Hansson 5bdd264ce0 Delete selected clipboard history entries 2026-05-29 12:23:53 +02:00
David Heinemeier Hansson e79013adbe Fix large clipboard history pastes
Clipboard history selections passed the full selected text as a process argument to omarchy-clipboard-paste-text. Large entries can exceed Linux's per-argument exec limit, so the helper never starts reliably for big copied blocks.

Pass the original history index instead and have the helper read that entry from clipboard-history.json before wl-copy and Shift+Insert. Also focus the first row when opening the manager, keep filtered rows mapped to their original history indexes, and drop whitespace-only text entries.
2026-05-29 12:21:28 +02:00
David Heinemeier Hansson 6be9b8b6d9 Fix night light indicator state 2026-05-29 09:42:24 +02:00
David Heinemeier Hansson c795d52201 Paste emojis via clipboard 2026-05-29 09:32:01 +02:00
David Heinemeier Hansson 5104daf212 Restore gap 2026-05-28 21:21:33 +02:00
David Heinemeier Hansson 7bb18c1dd3 Refine Mullvad exit node picker 2026-05-28 21:21:33 +02:00
David Heinemeier Hansson d3666c5e98 Group Mullvad exit nodes by country 2026-05-28 21:21:33 +02:00
David Heinemeier Hansson ae7365f937 Fix repeated fingerprint setup 2026-05-27 21:20:39 +02:00
David Heinemeier Hansson dfc450f2cb Fix bar config panel reload 2026-05-27 15:20:30 +02:00
David Heinemeier Hansson bc32980cca Replace bar settings with inline config panel 2026-05-27 15:11:36 +02:00
David Heinemeier Hansson eef5668d89 Fix test 2026-05-27 15:11:36 +02:00
David Heinemeier Hansson 7ef5999038 Tighten center bar widget spacing 2026-05-27 14:25:28 +02:00
David Heinemeier Hansson d6fa701543 Separate transparent bar foreground from panel text 2026-05-27 14:23:13 +02:00
David Heinemeier Hansson e490f743db Keep glyph notification hints compact 2026-05-27 14:09:26 +02:00
David Heinemeier Hansson a09cfc3460 Fix bar module position reset on click 2026-05-27 13:58:07 +02:00
David Heinemeier Hansson b9e82a5e53 Hide Dropbox tray icon when bar widget is present 2026-05-27 13:48:40 +02:00
David Heinemeier Hansson ff2a418a25 Use correct highlight for kanagawa 2026-05-27 13:34:39 +02:00
David Heinemeier Hansson f269adfd25 Add ydotool dev installer 2026-05-27 12:36:47 +02:00
David Heinemeier Hansson 419cd37e14 Fix transparent bar contrast timing 2026-05-27 12:36:45 +02:00
David Heinemeier Hansson 9f81a65732 Add visible bar drag and drop 2026-05-27 12:36:13 +02:00
David Heinemeier Hansson 3986522d6e Extend shell bar config command 2026-05-27 11:20:42 +02:00
David Heinemeier Hansson 8914d30be7 Use hyphenated gaming command routes 2026-05-27 11:15:21 +02:00
David Heinemeier Hansson 0acac408e4 Namespace service and editor installers 2026-05-27 10:53:30 +02:00
David Heinemeier Hansson 88816ab9be Extend notification popup lifetime 2026-05-27 10:50:31 +02:00
David Heinemeier Hansson ee97329aee Add service removal commands 2026-05-27 10:48:08 +02:00
David Heinemeier Hansson e91aa9647b Add shell bar config commands 2026-05-27 10:41:12 +02:00
David Heinemeier Hansson b03a7cc73c Use Tab to switch bar panels 2026-05-27 10:40:32 +02:00
David Heinemeier Hansson 848499a76b Massage it 2026-05-27 10:29:01 +02:00
David Heinemeier Hansson f520f9ff22 Simplify 2026-05-27 10:28:49 +02:00
David Heinemeier Hansson 8b4525458b pkexec > sudo 2026-05-27 10:15:12 +02:00
David Heinemeier Hansson 5a08ef33fb Fix icon placement 2026-05-27 08:56:29 +02:00
David Heinemeier Hansson 8350a792ac Add exit nodes to the panel 2026-05-27 08:44:32 +02:00
David Heinemeier Hansson 67dd7a2953 Add Tailscale panel connection controls 2026-05-26 22:07:20 +02:00
David Heinemeier Hansson 48a741e3ee Make the current user a tailscale operator on install 2026-05-26 19:03:17 +02:00
David Heinemeier Hansson 9100bc96be Launch shell actions through Hyprland 2026-05-26 18:50:24 +02:00
David Heinemeier Hansson 492b420aad Open recording menu from indicator 2026-05-26 02:11:45 +02:00
David Heinemeier Hansson dd3080251d Fix Voxtype install notification hook 2026-05-26 00:11:51 +02:00
David Heinemeier Hansson 953616dd62 Remove borders from menu highlights 2026-05-26 00:11:03 +02:00
David Heinemeier Hansson af5e918dd5 Improve actionable notification wrapper 2026-05-25 23:51:48 +02:00
David Heinemeier Hansson 322d1bc30d Gate bluetooth pairing agent on active bluetooth service 2026-05-25 23:05:00 +02:00
David Heinemeier Hansson 9fb52fa37a Fix cleaning up the first-run sudo rm 2026-05-25 22:50:24 +02:00
David Heinemeier Hansson e1075e3cd7 No need to scream about important notifications
They're already there until you dismiss them
2026-05-25 22:42:53 +02:00
David Heinemeier Hansson 2d86736fb0 Update for the new monitors.lua 2026-05-25 22:41:01 +02:00
David Heinemeier Hansson 106b25e65a No transparency on the webcam overlay 2026-05-25 21:19:26 +02:00
David Heinemeier Hansson 0d8e1e2dcd Add shell screenshot sanity test 2026-05-25 20:57:19 +02:00
David Heinemeier Hansson 5300a668d6 Add shell bar widget contract test 2026-05-25 20:57:19 +02:00
David Heinemeier Hansson 2859ec06c7 Add shell plugin registry contract test 2026-05-25 20:57:19 +02:00
David Heinemeier Hansson 38e06bba2d Add shell manifest entrypoint load test 2026-05-25 20:57:19 +02:00