Commit Graph
977 Commits
Author SHA1 Message Date
David Heinemeier Hansson af5e918dd5 Improve actionable notification wrapper 2026-05-25 23:51:48 +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 2d86736fb0 Update for the new monitors.lua 2026-05-25 22:41:01 +02:00
David Heinemeier Hansson 45e9322d2a So AI can better test its work (and its tiny) 2026-05-25 18:23:12 +02:00
David Heinemeier Hansson 984f3368b4 On-demand Signal install 2026-05-25 18:19:06 +02:00
David Heinemeier Hansson 0ff8b5eece Move Spotify to optional service install 2026-05-25 18:12:40 +02:00
David Heinemeier Hansson aba64ca864 Switch to the new lighter basic jetbrains mono nerd package 2026-05-25 17:29:27 +02:00
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 74fb9b0e80 Install GitHub CLI via mise 2026-05-25 16:56:59 +02:00
David Heinemeier Hansson 977e762619 Install Claude via mise 2026-05-25 16:52:23 +02:00
David Heinemeier Hansson f1f75ee11b Switch from npm to mise for the lazy-loaded tools 2026-05-25 16:49:18 +02:00
David Heinemeier Hansson 3a6fca6889 Add moonlight as a default package
It's only 1mb and I use it everywhere
2026-05-24 14:56:46 +02:00
Ryan Hughes 4cd6593ba3 Use plugin IPC routes 2026-05-23 04:32:20 -04:00
David Heinemeier Hansson bbdf873aec Extract the runner logic into its own file so the stubs can be minimal 2026-05-22 17:37:43 +02:00
David Heinemeier Hansson b7df0b9a2e Always use OMARCHY_PATH 2026-05-22 17:37:43 +02:00
David Heinemeier Hansson b19dc7eae2 Switch Wi-Fi setup to NetworkManager 2026-05-21 10:19:36 +02:00
David Heinemeier Hansson d1b452cc5f Lock before suspend with sleep inhibitor service 2026-05-21 07:57:08 +02:00
David Heinemeier Hansson e1066e67d5 Switch media controls to QS MPRIS 2026-05-20 22:53:50 +02:00
David Heinemeier Hansson 16193e7c93 Convert tz setting to a QS menu 2026-05-20 22:10:46 +02:00
David Heinemeier Hansson ea1b0e7ced Extract panels out into their own top-level concern 2026-05-20 13:51:39 +02:00
Ryan Hughes da53c0ff60 Add Pi theme based on system theme
Based entirely on the work of @robzolkos in #5711. That attempt was
adapted to better fit the standard templating system while also adding
color mixing for use in other themes.
2026-05-20 01:53:34 -04:00
Ryan Hughes b6803aa269 Fix bluetooth 2026-05-19 19:59:27 -04:00
David Heinemeier Hansson 1a630b1239 Pull low battery warning into shell 2026-05-19 21:28:32 +02:00
David Heinemeier Hansson abf0a68b54 Drop walker + elephant 2026-05-19 20:54:20 +02:00
David Heinemeier Hansson 695d2c6e7c No longer used 2026-05-19 20:54:20 +02:00
David Heinemeier Hansson 6849d0f0f3 Stop using the beta 2026-05-19 20:54:20 +02: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 c6d7aa9494 Drop the systemd running on advice from outfoxxed 2026-05-19 11:20:29 +02:00
David Heinemeier Hansson 2896fc5c98 Merge branch 'dev' into omarchy-shell 2026-05-19 10:50:47 +02:00
Axel FontaineandGitHub df82125953 Enable Docker multi-arch builds by default (#5901)
* Enable Docker multi-arch image building

* Added migration for Docker multi-arch image building
2026-05-19 09:40:54 +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 4e2da8480a Standardize all notification sending 2026-05-17 19:51:29 +02:00
David Heinemeier Hansson 8f643282b9 Switch from gnome polkit to QS 2026-05-16 22:20:25 +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 78de3c76d2 Merge branch 'dev' into omarchy-shell 2026-05-15 18:33:09 +02:00
David Heinemeier HanssonandGitHub c0275ea9f2 Foot as the default terminal (#5831)
* Bind maps too

* Make foot the default terminal
2026-05-15 17:44:09 +02: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
David Heinemeier Hansson 8d5e9e794e Move to pnpm dlx with a 5-day lag to skip the latest zero-day npm package exploits 2026-05-12 23:58:27 +02:00
David Heinemeier HanssonandRyan Hughes 1e646be7ee We need quickshell available 2026-05-11 15:28:33 -04:00
David Heinemeier HanssonandRyan Hughes 333ec367df Let's build our own wall 2026-05-11 15:28:33 -04:00
David Heinemeier HanssonandRyan Hughes da822f6ffb Change from swaybg to skwd-wall
Nicer picker and support for movie bgs
2026-05-11 15:27:43 -04:00
Ryan Hughes 804571d8e2 Update all hyprland references to new lua ones 2026-05-11 10:40:26 -04:00
David Heinemeier Hansson b2f89061c7 Add hunk for diffing as a lazy-install npx 2026-05-11 11:31:42 +02:00
92f93cb0e5 Persist Bluetooth power state across reboots (#5683)
* Persist Bluetooth power state across reboots

BlueZ defaults to AutoEnable=true, which forces controllers on at boot
regardless of the last user-set state. Setting AutoEnable=false makes
bluetoothd respect the persisted Powered state, so toggling off in
bluetui (or any DBus client) survives a reboot.

Adds the change to the install path and a migration for existing setups.

* Set reboot-required in Bluetooth persistence migration

Per review feedback, the AutoEnable=false change only takes effect on
bluetoothd startup. Without setting reboot-required, omarchy-update-restart
won't prompt the user to reboot, so the fix would only kick in at their
next organic reboot — by which time the bug may appear unfixed.

Matches the convention in migrations/1776346552.sh and similar.

* No need to ask for a reboot when this is available on the next one

---------

Co-authored-by: David Heinemeier Hansson <david@hey.com>
2026-05-11 10:21:16 +02:00
David Heinemeier Hansson 0075645f0e Set hyprlock corners too 2026-05-10 15:05:34 +02:00