v0.1.1 was withdrawn upstream — it was tagged without the Cargo.toml
bump, so its binary reported 0.1.0. v0.1.2 corrects the version string.
Rebuilt with makepkg on x86_64; packaged binary reports ttfx 0.1.2.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The repo is now omacom-io/ttfx, matching the binary and package name, so
the source URL and archive checksum change with it (the tarball's
top-level directory is the repo name). v0.1.1 adds NOTICE and a
standard-form MIT LICENSE, both now installed.
Rebuilt and verified with makepkg on x86_64.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Rust port of terminaltexteffects that renders byte-identical frames to
the Python original, as one dependency-free binary.
- ~1 ms startup vs ~107 ms for the Python import alone
- median 9.6x faster rendering; heavy effects hold 120fps fullscreen
where Python drops to ~71fps
- CLI-compatible with tte: same option names, defaults, and exit codes
Built and verified locally with makepkg (x86_64): cargo test passes in
check(), package installs the binary plus shell completions.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The desktop file and icon now ship as local sources, since the upstream
repo dropped its in-tree pkgbuild directory in favor of this one.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Includes the .omarchy/package.json metadata the release pipeline
requires to enumerate a package -- without it, bin/repo release
silently skips the directory.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Half the package was git history: lazy.nvim clones with
--filter=blob:none, which marks packs as promisor packs that gc refuses
to touch, so every plugin shipped its full commit graph. Cut each repo
to its checked-out tips (drop remote/tag refs, mark the tips as shallow
boundaries, strip the promisor markers, gc for real) and exclude
test/tests/spec via sparse-checkout so the restore pass in package()
does not resurrect them.
:Lazy update keeps working -- fetch into a shallow repo stays shallow
and re-fetches tags. 116 -> 52.5 MiB installed, 67 -> 32 MB download.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
A transient network failure cloning retroarch-joypad-autoconfig-git took
the whole sync workflow red. Clones now retry up to 3 times, and the
failure message includes git's actual error instead of guessing "may not
exist in AUR" — which was never the cause anyway: AUR serves an empty
repo for unknown package names, so that case is now detected explicitly
by the missing PKGBUILD.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Installs the upstream app.slice oomd drop-in so memory pressure kills an
app scope instead of the compositor session, and protects user edits to
etc/systemd/oomd.conf.d/10-omarchy.conf on upgrade.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The dev packages are versioned off the quattro tip, so rebuilding the
same upstream commit yields the same filename. Promotion treated any
pre-existing filename as fatal, which wedged the release loop whenever a
run promoted but died before update-repo rebuilt the database: the stale
database kept advertising the older hash, so every later run rebuilt the
identical package and failed here again, retaining the state file each
time.
Compare the bytes instead. Identical packages are skipped and the run
continues, so the following update-repo step fixes the database and the
loop unsticks itself. Differing content under a published filename still
aborts. Signatures are judged by the package they sign, since gpg stamps
a timestamp into every signature and a re-signed package never matches.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
package() staged the LazyVim data tree twice: once at
/usr/share/omarchy-nvim/data and again at /etc/skel/.local/share/nvim. Only
the /etc/skel copy is ever read — new users are seeded from it, and
omarchy-nvim-setup prefers it — so the /usr/share copy was dead weight worth
close to half the package, which today is 243 MB installed and 178 MB read off
the ISO on every install. That made omarchy-nvim the largest package in an
Omarchy install after noto-fonts-cjk.
Drop it once /etc/skel has its copy, after the chmod and worktree restore that
copy inherits. config/ stays: both the Omarchy 4 remote-clipboard migration and
the 3.x disable-news-alert migration read it from there.
omarchy-nvim-setup's package-dir fallback narrows to config/ to match. It could
never have fired for data anyway — the setup script and /etc/skel ship in the
same package, so a new script can't pair with an old layout — and the remaining
way to lose the seed, hand-clearing /etc/skel, now says which directory is
missing and that pacman owns it.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
The settings package now ships /etc/systemd/zram-generator.conf, so it needs
a backup entry to protect user edits across upgrades like every other file it
places in /etc, and an optdepends line pointing at the package that reads it.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
The builder image is layer-cached, so its glibc drifts behind the
mirror while makepkg -s installs makedepends from the freshly synced
database. omarchy-settings-dev died on that partial upgrade: the new
imagemagick needs GLIBC_2.44 and magick refused to run in package().
pacman -Syu runs before the Omarchy repos are appended, so only
core/extra take part -- in-flight build-output packages can't be
pulled into the container.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
The sync regenerated the PKGBUILD from AUR and clobbered the splashsrc
patch (restored in 564d0b4). Pin it so the local changes survive.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
The pin to d79f157 rebuilt 1.94.10.r12.gd79f157-1.1, but those exact
filenames were already published, so promotion failed. And an untested
1.94.10.r220.g695663f build from master had already been released,
which sorts above the pinned version, so the pin could never reach
users anyway. epoch=1 makes the pinned build win the version
comparison and gives it promotable filenames; once published, the
commit-hash check skips further rebuilds.
Also disable AUR sync: the bot would otherwise regenerate the PKGBUILD
from AUR and wipe out both the pin and the epoch.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Commit 7922065 added 0002-escape-optional-splashsrc-expansion.patch
directly to the package dir, but the AUR sync bot regenerates the dir
from AUR plus .omarchy/patches, so the next sync (f886efe) dropped the
patch and reverted pkgrel to 2.1. That stale pkgrel then made the build
server rebuild 0.2.0-2.1, whose filenames already exist in production,
failing promotion.
Restore the patch and pkgrel=2.2, carry the customization as an
.omarchy/patches sync patch, and bump the metadata pkgrel suffix to 2
so future syncs keep producing 2.2.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
omarchy moves fcitx5 off Hyprland's fire-and-forget autostart onto a
supervised systemd user service, so ~/.XCompose compose sequences stop
dying silently when it goes away. Ship the unit.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
omarchy-tailscale-receive.service was in default/systemd/user/ but never
installed, so `systemctl --user enable` found no unit for it.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
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>