Commit Graph
868 Commits
Author SHA1 Message Date
David Heinemeier Hansson 27497b19bf Expose DNS setting in the network widget 2026-05-17 19:51:29 +02:00
David Heinemeier Hansson 2713d43f35 Replace Walker clipboard with native Quickshell clipboard picker 2026-05-17 10:49:53 +02:00
David Heinemeier Hansson 25c718e3df Add QS emoji picker 2026-05-17 09:47:45 +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 855377e7a1 Slim down migration 2026-05-15 21:56:26 +02:00
David Heinemeier Hansson 78de3c76d2 Merge branch 'dev' into omarchy-shell 2026-05-15 18:33:09 +02:00
David Heinemeier Hansson 43134875b5 Ensure that $BROWSER runs omarchy-launch-browser and doesn't hand ownership to parent process
This prevents gh auth login from working without an existing open
browser
2026-05-15 16:07:35 +02:00
David Heinemeier Hansson a4635f7657 Make o available without error 2026-05-15 14:44:50 +02:00
David Heinemeier Hansson 4146600f5c Refresh the theme 2026-05-15 14:18:57 +02:00
David Heinemeier Hansson 47cd93143a Explain reasoning 2026-05-15 13:57:01 +02:00
David Heinemeier Hansson 8d107ed04c Drop outdated migrations 2026-05-15 13:56:15 +02:00
David Heinemeier Hansson 719b7df91a No longer has its own flags 2026-05-15 13:55:45 +02:00
David Heinemeier Hansson 870fe16b0a Add Alt+esc to close a pane too 2026-05-15 13:39:17 +02:00
David Heinemeier Hansson 2f56b525c6 Simpler additional tmux splits 2026-05-15 13:37:53 +02:00
Ryan Hughes 697e4b3c73 Drop dead hyprland conf-only migration references
Same logic as the waybar/mako sweep: migration 1778321093 converted the
user's top-level hypr configs (autostart/bindings/hyprland/input/
looknfeel/monitors + envs + apps/*) from hyprlang `.conf` to Lua, so
any earlier migration that seds those files is editing a path that no
longer exists on the new layout.

These were already applied on existing systems and skipped on fresh
installs (preflight marks them done before they would run), so the
change is purely repo cleanliness — the migrations dir stops mentioning
files the new omarchy doesn't have.

Deleted 18 migrations that only touched dead .conf paths:

  1754389057 1755870033 1757866485 1757877123 1757877852 1760462260
  1763386443 1767138576 1769543550 1770159912 1770375655 1771606249
  1771847961 1772293693 1776410469 1776781957 1777620904 1778008689

Stripped dead .conf sed/cp blocks from 5 mixed migrations whose
remaining work still matters (webapp launcher fixup, uwsm env/term
config, xdg-terminal-exec install, Obsidian flags relocation, swayosd
systemd service):

  1755507891 1758019332 1762121828 1776434586 1778171768

The four genuinely-alive .conf files (hyprlock.conf, hypridle.conf,
xdph.conf, hyprsunset.conf) are untouched. The converter migration
(1778321093) is untouched. The lua-targeting migration 1757879836 is
untouched.
2026-05-14 19:14:22 -04:00
Ryan Hughes dcce74401b Drop dead waybar/mako migration references
The dev -> omarchy-shell flip migration (1778743515.sh) uninstalls
waybar and mako and moves both user-config dirs aside, so any older
migration that tweaks ~/.config/waybar/ or invokes
omarchy-{restart,refresh}-waybar / omarchy-restart-mako is editing
something that's about to be removed.

These migrations are already marked applied on existing systems and
skipped on fresh installs (preflight touches every migration name into
the state dir before they would run), so removing/editing them is a
no-op for anyone currently on omarchy. What it does fix is the repo
itself referring to commands that no longer exist on disk.

Deleted 26 migrations that were entirely waybar/mako tweaks:

  1752793122 1754228071 1754331529 1756371020 1757279511 1757511571
  1760693222 1760787158 1761269603 1763409505 1763560161 1763634099
  1763653692 1764067068 1767227973 1767685679 1767716691 1768270644
  1771602477 1771602647 1775208227 1777017528 1777464602 1777578316
  1778139028 1778539119

Stripped the waybar/mako bits from 10 mixed migrations whose real work
is still relevant (impala install, light themes, wiremix, tzupdate,
xdg-terminal-exec, bluetui, terminal app-ids, voxtype GPU, walker
toggle):

  1751887718 1752725616 1752896442 1753495989 1762121828 1762417304
  1763386443 1773506226 1775241210 1778405462
2026-05-14 19:10:13 -04:00
Ryan Hughes f470dcc27a Consolidate dev -> omarchy-shell migration; drop premature widget removal
Replace the mako-only migration with a single "complete the flip"
migration that handles everything needed to bring a dev-channel user
onto omarchy-shell:

  - install quickshell if it isn't already on the box
  - stop and uninstall mako; pacman -Rns deletes the .service unit too,
    so D-Bus activation can't conjure it back into existence
  - stop and uninstall waybar with the same uninstall-not-mask approach
  - move ~/.config/{mako,waybar} aside (timestamped backup) rather than
    rm -rf, so anyone with hand-tuned rules can mine them
  - clear the stale toggle-state markers
  - call omarchy-restart-shell so the bar and notification daemon come
    up mid-session without a relog

Drop migrations/1778715864.sh: shell.json hasn't shipped to any user
yet, so a migration removing widgets nobody has is dead code.
2026-05-14 16:34:40 -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 6891c996b5 Add migration for new tmux keybinding 2026-05-14 12:04:09 +02:00
Ryan Hughes 7d2745b6a6 Refine quickshell bar and Noctalia compatibility 2026-05-14 02:21:48 -04:00
Ryan Hughes 087909714e Add tmux keybindings viewer 2026-05-13 00:20:38 -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
Ryan Hughes c0e099fed5 Prevent wiping waybar configs to reposition 2026-05-11 20:07:18 -04: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 82a1a91509 Add conf -> lua migration for Hyprland and update old migrations 2026-05-11 10:39:22 -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
RenéandGitHub 324c9a4054 Fix fontconfig monospace binding overriding app-specific fonts (#5700)
Change monospace match from mode="assign" binding="strong" to
mode="append" binding="same" so the system font acts as a fallback
instead of overriding explicit app font configs like Ghostty's font-family.

Add migration to fix existing user configs.

Fixes #5675
2026-05-11 10:15:37 +02:00
David Heinemeier Hansson 705e26eb8a Migrate the existing imv configs 2026-05-11 10:00:28 +02:00
David Heinemeier Hansson 2e29714eee Add integrated Style > Corner controls across hyprland, mako, walker 2026-05-10 14:29:51 +02:00
David Heinemeier Hansson 887c7e3751 Set mako corners round or sharp 2026-05-10 11:50:19 +02:00
David Heinemeier Hansson b9830069b1 Remove duplicate cliamp .desktop and icon 2026-05-09 08:28:53 +02:00
David Heinemeier Hansson cf9c274ee5 Cliamp now ships with the icon and desktop entry on its own 2026-05-09 08:25:05 +02:00
David Heinemeier Hansson ad2ae30f1e Remove VAAPI GL video feature flags from Chromium-based browser configs to prevent crashing on some machines 2026-05-08 22:31:01 +02:00
David Heinemeier Hansson ce60cb81c1 Don't do that 2026-05-08 22:06:18 +02:00
David Heinemeier Hansson fb174bfa70 Fix perms 2026-05-08 22:04:41 +02:00
David Heinemeier Hansson dad2870f58 Check for weather once a minute instead of once every ten
More accurate and deals with the first-boot issue on network too
2026-05-08 21:44:21 +02:00
1537547f91 Use packaged Dell XPS touchpad haptics (#5534)
* Configure Dell XPS haptics directly

* Use packaged Dell XPS touchpad haptics service

* fix: keep one Dell haptics migration

* We already have a dedicated Trigger > Hardware menu

* Name for action

* Moved

* Need to make the package available for offline

* Simplify

---------

Co-authored-by: David Heinemeier Hansson <david@hey.com>
2026-05-08 21:07:51 +02:00
David Heinemeier Hansson 9f187b55da Make sure the Omarchy agent skill is available for all harnesses 2026-05-08 11:56:06 +02:00
David Heinemeier Hansson a43c304d21 Add post-boot.d hooks and give daily weather as an example 2026-05-08 08:39:25 +02:00
fa1ed01cd7 Run SwayOSD as a session service (#5656)
* Run SwayOSD as a session service

* Restart SwayOSD after clean exits

* We don't need the input backend (as we manage the hotkeys in Hyprland)

* Ensure we cleanup the old service starter

* Not needed

* Not needed either

* Clean up migration

---------

Co-authored-by: David Heinemeier Hansson <david@hey.com>
2026-05-07 19:43:27 +02:00
Mateusz KowalczykandGitHub 402da79f54 Install hardware video acceleration for non-X-series Panther Lake Chips (#5655)
* Adjust condition to also match non-X series Panther Lake GPUs.

* Add migration to install GPU acceleration on non-X Panther Lake systems.

* Update comment with Non-Arc Panther Lake GPUs mentioned.

* Simplify conditions in the migration
2026-05-07 19:12:48 +02:00
Ryan Hughes 4f502322bd Update pi package source 2026-05-07 12:21:08 -04:00
David Heinemeier Hansson 2293df2913 This requires a full reboot to work 2026-05-07 17:02:08 +02:00
Diego RiosandGitHub 9c3520caf9 Enable Bluetooth A2DP auto-connect in WirePlumber (#5336)
* Enable Bluetooth A2DP auto-connect in WirePlumber

* Harden Bluetooth A2DP migration
2026-05-07 16:48:26 +02:00
David Heinemeier Hansson e14c685c7e Quoting 2026-05-07 16:16:01 +02:00
David Heinemeier Hansson 6f03b72870 Start hyprland for sddm without producing errors 2026-05-07 15:12:25 +02:00