omarchy renamed omarchy-update-user-notify to omarchy-migrate-notify and
dropped the .path watcher that fired during every package update.
Keep the old service name as a symlink onto the new unit. Existing users hold
an absolute graphical-session.target.wants symlink to the old path, and the
migration that repoints it only runs for users who run an update, which is the
opposite of who the notifier is for. Without the alias their symlink dangles
and they are never told about pending migrations.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
libfprint 1.94.100 ships the focaltech_moc driver and the FocalTech
FT9349 (2808:a97a) ID, so Omarchy is back on stock libfprint. Keep
this package as an escape hatch, pinned to the commit behind the
currently published build so it can't drift onto untested master.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01V6ADCjSXt3kd9XGCAJKJkT
/etc/systemd/zram-generator.conf collided with the copy archinstall writes on
every ISO install. zram-generator.conf(5) reserves /etc for the local admin and
has vendors ship snippets under /usr/lib/systemd/zram-generator.conf.d/, where
drop-ins outrank the main config file.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LjeyQZsNBxqyYy9z8KaKm7
omarchy ships etc/systemd/logind.conf.d/20-inhibit-delay.conf, which raises
InhibitDelayMaxSec so the pre-suspend lock can finish securing the session
before logind stops honouring its inhibitor and suspends anyway.
package() already installs it along with the rest of the etc tree, so this
changes nothing about whether the file lands. Listing it here is what keeps
pacman from clobbering a user's edit to it on upgrade, matching every other
/etc path this package owns.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Tools for authoring the per-model speaker tunings Omarchy ships. Split out of the
Omarchy tree because measuring a laptop and fitting a filter-chain is contributor
work almost nobody does, and it needs python, ffmpeg and mpv, none of which
Omarchy installs.
Depends on lsp-plugins-lv2 as well, since that supplies the lookahead limiter a
generated chain ends in and is needed to audition the result, not only author it.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
An IpcHandler deregisters itself from its destructor, but re-resolved its
registry by walking to its engine generation first — a walk that needs a
QML context that is already gone when the handler is destroyed along with
a reloading bar, a swapped plugin, or the shell root. The deregistration
was skipped and the registry kept a pointer to freed memory, so the next
`qs ipc call` into that target segfaulted the shell. Omarchy hits this
through omarchy.indicators refresh, which fires on every reminder, tmux
alert, and silencing toggle.
Carried on the fix-ipc-handler-lifetime branch of
https://github.com/omacom-io/quickshell
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
After a crash relaunch, quickshell kept __QUICKSHELL_CRASH_* and the
instance-info fd in its environment, so every child it spawned inherited
them and any `qs` invocation from those children booted a duplicate
shell instead of running its command (phantom instances on every
menu-launched picker after a crash).
Patch carried on the fix-crash-env-leak branch of
https://github.com/omacom-io/quickshell
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Quickshell 0.3.0's qs kill returns before the instance exits, which is
what forces omarchy-restart-shell to track pids and wait for death
itself. Master fixed kill to block until the instance is gone (025c709),
so ship our own build pinned at e649d24 until a release catches up.
The #commit= pin plus sync:false keeps upgrades entirely manual: nothing
rebuilds or resyncs until the sha is bumped by hand. Note quickshell
links Qt private APIs, so every Arch qt6 bump needs a pkgrel bump and
rebuild here (the packaged quickshell-check hook warns users if we lag).
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
omarchy-nvim-setup hardcoded theme.lua to the Omarchy 4 theme location
(~/.local/state/omarchy/current), which doesn't exist on Omarchy 3.x, so
fresh 3.8.3 installs errored on nvim startup with "Failed to load
plugins.theme" (basecamp/omarchy#6309). Detect the right location at
runtime: prefer whichever current-theme directory exists, and fall back
to the installed Omarchy version for fresh 3.x installs where setup runs
before the first theme is set.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
lazy.nvim caches a plugin's resolved opts in plugin._.cache and carries
that state over on a spec reload, and Loader.colorscheme() no-ops for
already-loaded plugins. So switching between two themes driven by the
same colorscheme plugin (e.g. generic themes on aether.nvim) never
pushed the new palette into setup(), leaving stale colors until nvim
was restarted. Fully reload the theme plugin instead, which clears the
cached opts and reruns config with the new theme's colors.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Sessions inside tmux used to skip the clipboard provider entirely, so
yanks only reached the machine's own Wayland clipboard and never
traveled over OSC 52 to clients attached via SSH. Now every copy also
emits OSC 52, which tmux turns into a buffer and rebroadcasts to all
attached clients. Paste prefers wl-paste when a display is available.
This also drops the private-file fallback clipboard and its regtype
sidecar: Neovim's built-in clipboard layer already restores the register
type when pasted content matches its cache, and OSC 52 queries answered
by tmux cover the display-less paste case.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>