Commit Graph
33 Commits
Author SHA1 Message Date
David Heinemeier Hansson d7adaee06b Move 1pw to an optional install since we need to install the chrome extension anyway as well as login 2026-05-25 17:29:02 +02:00
David Heinemeier Hansson d6113e5133 Now it's a default 2026-05-24 14:57:43 +02:00
David Heinemeier Hansson a910b5dcb4 Give reminders an indicator and a full QS flow 2026-05-23 18:04:21 +02:00
Ryan Hughes 4cd6593ba3 Use plugin IPC routes 2026-05-23 04:32:20 -04:00
David Heinemeier Hansson 4f9aa96de0 Beef up audio recovery when something goes wrong 2026-05-22 09:39:26 +02:00
David Heinemeier Hansson c3cabffa44 Use launcher hides list 2026-05-21 12:43:03 +02:00
David Heinemeier Hansson e021863b67 Convert tui and web app remove to QS menus 2026-05-20 22:33:45 +02:00
David Heinemeier Hansson 5bc151f994 Convert theme remove to a QS menu 2026-05-20 22:18:38 +02:00
David Heinemeier Hansson 16193e7c93 Convert tz setting to a QS menu 2026-05-20 22:10:46 +02:00
David Heinemeier Hansson e29394a133 Start cleanup of menu 2026-05-20 19:25:57 +02:00
David Heinemeier Hansson 41425481db app-launcher to just launcher 2026-05-20 13:57:22 +02:00
David Heinemeier Hansson 61bb42ce73 Remove menu options that now live elsewhere in bar panels 2026-05-19 21:09:39 +02:00
David Heinemeier Hansson 0f4490c9fc Leave this to the themes 2026-05-19 21:01:51 +02:00
David Heinemeier Hansson abf0a68b54 Drop walker + elephant 2026-05-19 20:54:20 +02:00
Ryan Hughes b59a8d0bb0 Add Battle.net installer 2026-05-19 14:09:04 -04:00
David Heinemeier Hansson a157b98d5b No longer need wiremix 2026-05-19 18:51:05 +02:00
David Heinemeier Hansson 7ea4e1ab04 Switch hyprlock to QS 2026-05-19 17:08:14 +02:00
David Heinemeier Hansson 0f5044167c Move from hypridle to QS 2026-05-19 12:02:28 +02:00
David Heinemeier Hansson 2ac069e72b Drop bluetui and impala in favor of shell controls 2026-05-19 08:20:13 +02:00
David Heinemeier Hansson b0f5d941ba Switch to running quickshell as a systemd service that is auto-restarted if it crashes 2026-05-18 13:58:07 +02:00
David Heinemeier Hansson 89a6517018 Simplify scaling 2026-05-17 21:44:08 +02:00
David Heinemeier Hansson 27497b19bf Expose DNS setting in the network widget 2026-05-17 19:51:29 +02:00
David Heinemeier Hansson ad20041c22 Just go straight to the bar settings 2026-05-16 22:06:02 +02:00
David Heinemeier Hansson eaea4cd577 Reduce Settings to just Bar Settings
The other don't add enough over the Omarchy Menu
2026-05-16 21:47:54 +02:00
David Heinemeier Hansson 1eab0cffc9 Integrate swaybg and swayosd into the new shell 2026-05-16 20:34:09 +02:00
David Heinemeier Hansson 8779c635c5 Tweak text 2026-05-16 12:58:45 +02:00
Ryan Hughes edfd68d48e Strip the bash-bin compatibility layer from Menu.qml
With bin/omarchy-menu gone there's no caller that summons the menu by
writing a JSON tempfile and polling a done file. Drop everything that
existed only to support that handshake:

  - menuJsonFile / menuJsonFileView / loadMenuJson / openMenu(json,...)
  - pendingSelectionFile / pendingDoneFile / selectionFile / doneFile
  - mergeProviderJson (the JSON-wrapper for provider output)
  - applyProc / releaseProc / doneFilesToRelease / finishDoneFile /
    releaseNextDoneFile / resetRequest / requestActive / closeMenu
  - the menuBin property pointing at the deleted bin

applySelected is now four lines (close + execDetached); cancel is two
(close + clear filter). open() takes either {menu: id} or a bare initial
menu name, and hands off to openExistingMenu which uses the cached items
from the JSONC FileViews.

Net: 91 lines smaller, no perf change.
2026-05-14 17:45:53 -04:00
Ryan Hughes 4a665af581 Drop bin/omarchy-menu; sweep JSONC actions to bare commands
The shell now owns the menu — both data and dispatch. The 821-line bash
bin was carrying the open path (cold spawn + jq pipeline + tempfile dance
+ IPC + poll) and a grab-bag of helpers that only existed inside it. Both
go away in this commit.

New bins for the few composite helpers that were genuinely worth keeping:

  - omarchy-install-app NAME PKG
  - omarchy-install-and-launch NAME PKG DESKTOP_ID
  - omarchy-install-font LABEL PKG FAMILY
  - omarchy-launch-config-editor PATH
  - omarchy-reminder-set-interactive
  - omarchy-capture-screenrecording-with-webcam

Sweep through default/omarchy/omarchy-menu.jsonc rewrites:

  - present_terminal X   -> omarchy-launch-floating-terminal-with-presentation X
  - install_terminal X   -> omarchy-launch-floating-terminal-with-presentation 'omarchy-install-terminal X'
  - install / install_and_launch / install_font / open_in_editor -> new bins above
  - terminal X           -> xdg-terminal-exec --app-id=org.omarchy.terminal X
  - default_browser_is X -> [[ "$(omarchy-default-browser)" == "X" ]]
  - default_terminal_is X / default_editor_is X / haptic_touchpad_is X same shape
  - $(hypr_config_file X) -> ~/.config/hypr/X.lua
  - show_custom_reminder_input -> omarchy-reminder-set-interactive
  - screenrecord_with_webcam   -> omarchy-capture-screenrecording-with-webcam
  - stop_active_screenrecording -> omarchy-capture-screenrecording --stop-recording

Hyprland bindings switch from `omarchy-menu X` to
`omarchy-shell-ipc menu summon X` (the keybind hot path now skips bash
entirely). The Bar.qml omarchy widget and the battery right-click do the
same. ALT+PRINT becomes a one-liner: stop the recording if one is going,
otherwise summon the screenrecord submenu.

Measured: keybind-to-visible is ~30ms (was ~235ms). The shell's plugin
keepLoaded:true stops being theoretical \u2014 the menu data lives in memory
across opens, and the only work between keypress and paint is the IPC
roundtrip and the layer-shell window mount.
2026-05-14 17:43:12 -04:00
Ryan Hughes 90f0475a9d Rename refresh-bar -> refresh-shell, restart-quickshell -> restart-shell
The bin names should reflect the thing they manage. `refresh bar` is
misleading because the command resets the entire shell.json (which holds
plugins beyond just the bar), and `restart quickshell` names the runtime
rather than the product. Both now end in `-shell` to match the rest of
omarchy-shell.

Updates every caller in autostart, the menu, voxtype helpers, and the
shell README. No behavior changes.
2026-05-14 16:33:51 -04:00
Ryan Hughes 2ca15dc767 Remove waybar; relocate bar helper scripts into the shell tree
omarchy-shell's bar plugin replaces waybar on every default path, so the
waybar package, configs, indicator scripts, and toggle/restart/refresh
binaries all go away in this commit.

The four small helper scripts that Bar.qml shells out to (weather.sh and
indicators/*.sh) move with the shell rather than disappear \u2014 they live
at default/quickshell/omarchy-shell/scripts/ now, alongside the rest of
the shell code.

Companion script changes:
  - omarchy-shell-ipc gains --if-running so fire-and-forget refresh
    callers (toggle-idle, toggle-notification-silencing,
    update-available-reset, capture-screenrecording) don't accidentally
    spawn the shell when it isn't already up.
  - omarchy-theme-set, omarchy-tz-select, omarchy-voxtype-{install,model},
    omarchy-toggle-nightlight, omarchy-voxtype-config drop their waybar
    branches and comments.
  - omarchy-voxtype-status's summary stops claiming it's a Waybar helper.
  - omarchy-base.packages drops waybar; install/packaging/fonts.sh's
    comment points at the new bar consumer.
  - SKILL.md / AGENTS.md / omarchy-menu.jsonc lose their waybar entries.
  - test/omarchy-cli-test.sh substitutes a remaining toggle command.
2026-05-14 16:33:20 -04:00
Ryan Hughes c101591284 Replace mako with quickshell-backed notification daemon
Adds first-party omarchy.notifications service plugin that hosts a
freedesktop notification server and renders popups + a history popup
inside the shell. Uninstalls mako and retargets every helper, keybind,
indicator, and migration entry to the new daemon.

Plugin (default/quickshell/omarchy-shell/plugins/notifications/):
- Service.qml: NotificationServer, popupModel + pendingModel + pastModel
  (two-tier history, see below), DND via PersistentProperties +
  cache-file backstop, image cache for /tmp screenshots, IpcHandler with
  toggleDnd/setDnd/isDnd/showHistory/clear/clearPending/markAllSeen/
  dismissAll/dismissOne/invokeLast/dismiss, per-theme override file
  ~/.config/omarchy/current/theme/notifications.json honoring
  borderColor/backgroundColor/textColor/countdownColor.
- components/NotificationCard.qml: theme-driven card (Color.foreground/
  background/border tokens from Commons/Color.qml), 32x32 icon slot,
  Nerd Font glyph fallback via omarchy-glyph hint, hero image strip
  for screenshot/image-path notifications, hover-pause progress bar,
  uses bar.fontFamily so all surfaces share one font.

Filtering and DND:
- transient hint and CLI-style senders (app_name in notify-send /
  omarchy-action) bypass history but still pop.
- DND only allows omarchy-action toasts and notify-send -u critical
  through; real-app urgency=critical (Discord, Slack, Vesktop) is
  silenced and lands in pending instead.
- Pending vs past split surfaced via tabs in the bar widget popup;
  past tab is auto-pruned at the 15-minute mark.
- Click-to-jump: notifications without a libnotify default action focus
  the matching Hyprland window via class lookup.

Shell host:
- shell.qml: generic first-party service loader (mirrors the existing
  noctalia-compat path) and an alias for the bar so plugins can read
  barSize / barHidden / position for anchoring.
- Commons/Color.qml: parses the theme's hyprland.conf for
  $activeBorderColor so notifications match Hyprland window borders;
  picks the explicit accent= key over the color4= alias.

Bar widget rebase (plugins/bar/widgets/notificationCenter.qml):
- Drops the chunk-1 stub server, binds count/dnd state to the service,
  hosts the history popup via PopupCard so it drops down from the
  notification glyph the same way Quick Settings does.
- Pending/Past tabs, dismiss-individual close X, mark-all-as-seen and
  clear-recent action buttons, theme-driven palette.

Quick Settings rework (plugins/bar/widgets/controlCenter.qml):
- DND tile binds directly to service.doNotDisturb for instant feedback.
- Drops the volume slider (already in audioPanel) and the no-op Theme
  tile; adds a Bluetooth toggle bound to Quickshell.Bluetooth.
- Bigger 44x44 wallet was scaled back to 32x32 for tighter rows.

Notification scripts (bin/omarchy-*):
- omarchy-notification-send: passes glyph as a custom hint instead of
  prepending to the summary; adds -a omarchy-action and -u urgency
  automatically; supports -e/--transient passthrough.
- User-action toasts in the capture / toggle / hyprland / default-*
  scripts and bindings/utilities.lua now tag themselves
  -a omarchy-action so DND treats them as intent-based bypass.
- omarchy-toggle-notification-silencing, omarchy-notification-dismiss,
  default/waybar/indicators/notification-silencing.sh, and the Hyprland
  comma-keybinds all route through omarchy-shell-ipc notifications.
- omarchy-capture-screenshot / -screenrecording set the image-path
  hint properly so the hero-image rendering kicks in.

Mako removal (migrations/1778743515.sh):
- pkill -x mako, systemctl --user stop mako.service, pacman -Rns mako
  (uninstalling deletes /usr/lib/systemd/user/mako.service so D-Bus
  activation can't respawn it). Removes ~/.config/mako/ and the legacy
  toggle file. Restarts quickshell so it claims the bus name.
- Drops mako from install/omarchy-base.packages, autostart.lua,
  install/config/theme.sh + toggles.sh, default/themed/mako.ini.tpl,
  default/mako/, the omarchy-menu Mako restart row, bin/omarchy
  GROUP_DESCRIPTIONS, the settings panel catalogue, and the
  default/omarchy-skill paths table.
- Removed scripts: bin/omarchy-restart-mako,
  bin/omarchy-style-corners-mako.
- bin/omarchy-style-corners summary updated; corner radius for the
  notification card reads ~/.local/state/omarchy/toggles/quickshell-menu.json
  alongside the rest of the shell.
2026-05-14 14:21:07 -04:00
Ryan Hughes c7da0f74aa Replace bar-settings with unified settings plugin
Consolidates bar-settings into a single 'settings' plugin with sidebar
categories: Defaults, Style, Bar, System, Plugins. Updates supporting
commands (omarchy-launch-settings, omarchy-style-corners-quickshell,
omarchy-theme-list-with-previews, omarchy-hyprland-monitor-scaling-set)
and refreshes sidebar glyphs to Nerd Font icons.
2026-05-14 02:25:05 -04:00
Ryan Hughes 0e135bbb75 Integrate omarchy menu into shell 2026-05-14 02:25:05 -04:00