Skip to content

omarchy-settings: ship the full set on aarch64 for runtime-profile sources - #638

Merged
maralcbr merged 3 commits into
masterfrom
mac/14-settings-profile
Sep 28, 2026
Merged

maralcbr merged 3 commits into
masterfrom
mac/14-settings-profile

Conversation

@maralcbr

@maralcbr maralcbr commented Sep 25, 2026 •

Copy link
Copy Markdown
Collaborator

Ticket 14 recipe side. Runtime side: omacom/omarchy#13362 (marker default/settings-runtime-profile, now at fe9611efa).

Caution

Maintainer decides when to merge. Merging publishes omarchy-settings 4.0.4-4 to edge, x86_64 and aarch64. Built from the pinned v4.0.4, its payload is the same as 4.0.4-3 on both (see Publishing). rc and stable are untouched until a release.

What changed

Rebased onto master after #380.

  • Runtime-profile sources. A source with default/settings-runtime-profile decides at runtime which platform-specific files apply. Its aarch64 package gets the same files, backup and optdepends as x86_64: the Thunderbolt request, the memory stack (oomd, zram, zswap, full sysctl, USB autosuspend), and its HOOKS files as they are.
  • Older sources keep omarchy-settings: keep the Limine and mkinitcpio drop-ins on aarch64 #380's aarch64 package. That includes the pinned v4.0.4. Thunderbolt is removed, the HOOKS line is wrapped in the asahi guard, and the memory stack is stripped.
  • Every aarch64 build still checks that a Mac's asahi line survives the shipped HOOKS files and a stock line doesn't.
  • Keyboard unit. omarchy-brightness-keyboard-auto.service ships whenever the source has it (first-run enables it).
  • pkgrel 4. Edge already holds 4.0.4-3 on both architectures, so without a bump the PR build plans nothing and packing fails. That was the x86_64 failure.
  • omarchy-settings-dev is unchanged, as before.

Publishing

Real makepkg builds from the pinned v4.0.4, 4.0.4-3 recipe against 4.0.4-4, on both architectures:

  • Paths, modes, symlinks and .PKGINFO are identical apart from version, builddate, size and packager.
  • File contents are identical, .INSTALL included, except 36 icon PNGs made by ImageMagick. Those are pixel-identical; only their embedded timestamps differ, as on any rebuild.

So on edge:

  • x86_64: a no-op upgrade. post_upgrade re-copies the etc-overrides, as every omarchy-settings upgrade does: os-release, faillock, nsswitch, cups-browsed, cups-files, plymouthd.conf and skel .bashrc. Local edits to those are reset.
  • Snapdragon and DGX Spark: the same no-op upgrade and override re-copy. Boot drop-ins are unchanged from -3.
  • Apple Silicon Macs: the same package as -3. post_upgrade only reinstalls cups-files.conf and keeps /etc/os-release pointing at the distribution's.

The runtime-profile path only takes effect when omarchy and omarchy-settings are pinned to a source carrying the marker.

Platform guard (from #691)

The pacman platform guard's hook, script and detector copy now ship on aarch64 only; #691 keeps the -dev recipe. No platform package is built for x86_64, so an x86 machine has nothing to guard. The check that 00-omarchy-hooks.conf has its detector copy is scoped to aarch64 with it. Without the copy, x86_64 keeps the busybox line it would get anyway, and left unscoped the check would fail every x86_64 build from a #13362 source. v4.0.4 has no guard files, so the publish above is unchanged.

Testing

  • New tests/settings-runtime-profile.sh, wired into the self-tests. It runs package() on both architectures for a v4.0.4-style source and for a #13362 source with the marker, and fails against master's recipe. The profile packages are identical apart from the aarch64-only guard.
  • tests/settings-boot-config.sh passes unchanged, including the pacman upgrade checks as root.
  • Real makepkg from fe9611efa (OMARCHY_SRC): the aarch64 and x86_64 packages have the same files, modes, contents and .PKGINFO apart from arch.
  • Known side effect: makepkg --printsrcinfo over-lists the backup/optdepends added in package(). Nothing reads .SRCINFO for this recipe.

Second review: no blocking findings; tightened two test assertions (network-only sysctl, no guard on x86_64).

maralcbr added a commit to omacom/omarchy-mac that referenced this pull request Sep 27, 2026
The omarchy-settings recipe leaves the mkinitcpio, Limine, memory and USB
drop-ins out of its aarch64 package, because they used to assume x86_64. That
leaves an aarch64 install without the HOOKS baseline its initramfs needs, and
without the zram and reclaim settings every other Omarchy machine gets.

Each of those files now decides at runtime whether it applies: the HOOKS
baseline asks the platform, thunderbolt is added only where the kernel has the
module, the Limine files are read only where Limine is installed, the oomd
drop-ins are inert without systemd-oomd, aarch64 installs the zram generator
the zram drop-in needs, and the USB autosuspend option is ignored by a kernel
that builds usbcore in. default/settings-runtime-profile says so, file by
file; a recipe that finds it ships the same files on every architecture
(omacom/omarchy-pkgs#638), and older sources keep today's aarch64 package. A
test checks that every file it names exists and that each runtime decision is
in place.
maralcbr added a commit to omacom/omarchy-mac that referenced this pull request Sep 28, 2026
The omarchy-settings recipe leaves the mkinitcpio, Limine, memory and USB
drop-ins out of its aarch64 package, because they used to assume x86_64. That
leaves an aarch64 install without the HOOKS baseline its initramfs needs, and
without the zram and reclaim settings every other Omarchy machine gets.

Each of those files now decides at runtime whether it applies: the HOOKS
baseline asks the platform, thunderbolt is added only where the kernel has the
module, the Limine files are read only where Limine is installed, the oomd
drop-ins are inert without systemd-oomd, aarch64 installs the zram generator
the zram drop-in needs, and the USB autosuspend option is ignored by a kernel
that builds usbcore in. default/settings-runtime-profile says so, file by
file; a recipe that finds it ships the same files on every architecture
(omacom/omarchy-pkgs#638), and older sources keep today's aarch64 package. A
test checks that every file it names exists and that each runtime decision is
in place.
…urces

A source with default/settings-runtime-profile decides at runtime which
platform-specific files apply, so its aarch64 package now gets the same files,
backup and optdepends as x86_64: the Thunderbolt request and the memory stack
stay, and its HOOKS files ship as they are. The check that a Mac's asahi line
survives still runs on every aarch64 build. Older sources, including the pinned
v4.0.4, keep #380's aarch64 package: Thunderbolt removed, the HOOKS line guarded
for asahi, the memory stack stripped. The keyboard backlight unit first-run
enables ships whenever the source has it.

pkgrel 4 so the recipe change builds: edge already holds 4.0.4-3 on both
architectures. The payload built from v4.0.4 is unchanged.
@maralcbr
maralcbr force-pushed the mac/14-settings-profile branch from 227af03 to 2fecfe5 Compare September 28, 2026 03:31
maralcbr added a commit that referenced this pull request Sep 28, 2026
No platform package is built for x86_64 and pacman refuses another architecture's package there, so x86 transactions gain nothing from the guard. The x86 HOOKS baseline keeps the busybox line without a detector, so the detector copy goes too. omarchy-settings gets the same change in #638.
maralcbr added a commit that referenced this pull request Sep 28, 2026
No platform package is built for x86_64 and pacman refuses another architecture's package there, so x86 transactions gain nothing from the guard. The x86 HOOKS baseline keeps the busybox line without a detector, so the detector copy goes too. omarchy-settings gets the same change in #638.
No platform package is built for x86_64, so an x86 machine has nothing to
guard. The check that 00-omarchy-hooks.conf has its detector copy follows it:
without the copy, x86_64 keeps the busybox line it would have anyway, and
leaving the check unscoped would fail every x86_64 build from a source that
asks omarchy-hw-platform. Taken from #691, which keeps the -dev recipe.
@maralcbr
maralcbr merged commit e196eb3 into master Sep 28, 2026
7 checks passed
maralcbr added a commit to omacom/omarchy-mac that referenced this pull request Sep 28, 2026
The omarchy-settings recipe leaves the mkinitcpio, Limine, memory and USB
drop-ins out of its aarch64 package, because they used to assume x86_64. That
leaves an aarch64 install without the HOOKS baseline its initramfs needs, and
without the zram and reclaim settings every other Omarchy machine gets.

Each of those files now decides at runtime whether it applies: the HOOKS
baseline asks the platform, thunderbolt is added only where the kernel has the
module, the Limine files are read only where Limine is installed, the oomd
drop-ins are inert without systemd-oomd, aarch64 installs the zram generator
the zram drop-in needs, and the USB autosuspend option is ignored by a kernel
that builds usbcore in. default/settings-runtime-profile says so, file by
file; a recipe that finds it ships the same files on every architecture
(omacom/omarchy-pkgs#638), and older sources keep today's aarch64 package. A
test checks that every file it names exists and that each runtime decision is
in place.
@github-actions

Copy link
Copy Markdown
Contributor

Publish succeeded → live

Packages: omarchy-settings (x86_64, PR artifact); omarchy-settings (aarch64, PR artifact)

  • edge/x86_64: omarchy-settings-4.0.4-4-x86_64
  • edge/aarch64: omarchy-settings-4.0.4-4-aarch64

Commit e196eb3 · run

spencerbull pushed a commit to jacob-vincent-mink/omarchy-pkgs that referenced this pull request Sep 28, 2026
The guard and its detector copy now ship on aarch64 only (omacom#691), so the check that 00-omarchy-hooks.conf has its detector failed every x86_64 build from a source that carries the HOOKS baseline. x86_64 keeps the busybox line without a detector. Same scoping as omarchy-settings in omacom#638.
maralcbr added a commit to omacom/omarchy-mac that referenced this pull request Sep 28, 2026
The omarchy-settings recipe leaves the mkinitcpio, Limine, memory and USB
drop-ins out of its aarch64 package, because they used to assume x86_64. That
leaves an aarch64 install without the HOOKS baseline its initramfs needs, and
without the zram and reclaim settings every other Omarchy machine gets.

Each of those files now decides at runtime whether it applies: the HOOKS
baseline asks the platform, thunderbolt is added only where the kernel has the
module, the Limine files are read only where Limine is installed, the oomd
drop-ins are inert without systemd-oomd, aarch64 installs the zram generator
the zram drop-in needs, and the USB autosuspend option is ignored by a kernel
that builds usbcore in. default/settings-runtime-profile says so, file by
file; a recipe that finds it ships the same files on every architecture
(omacom/omarchy-pkgs#638), and older sources keep today's aarch64 package. A
test checks that every file it names exists and that each runtime decision is
in place.
maralcbr added a commit to omacom/omarchy-mac that referenced this pull request Sep 28, 2026
The omarchy-settings recipe leaves the mkinitcpio, Limine, memory and USB
drop-ins out of its aarch64 package, because they used to assume x86_64. That
leaves an aarch64 install without the HOOKS baseline its initramfs needs, and
without the zram and reclaim settings every other Omarchy machine gets.

Each of those files now decides at runtime whether it applies: the HOOKS
baseline asks the platform, thunderbolt is added only where the kernel has the
module, the Limine files are read only where Limine is installed, the oomd
drop-ins are inert without systemd-oomd, aarch64 installs the zram generator
the zram drop-in needs, and the USB autosuspend option is ignored by a kernel
that builds usbcore in. default/settings-runtime-profile says so, file by
file; a recipe that finds it ships the same files on every architecture
(omacom/omarchy-pkgs#638), and older sources keep today's aarch64 package. A
test checks that every file it names exists and that each runtime decision is
in place.
maralcbr added a commit to omacom/omarchy-mac that referenced this pull request Sep 28, 2026
The omarchy-settings recipe leaves the mkinitcpio, Limine, memory and USB
drop-ins out of its aarch64 package, because they used to assume x86_64. That
leaves an aarch64 install without the HOOKS baseline its initramfs needs, and
without the zram and reclaim settings every other Omarchy machine gets.

Each of those files now decides at runtime whether it applies: the HOOKS
baseline asks the platform, thunderbolt is added only where the kernel has the
module, the Limine files are read only where Limine is installed, the oomd
drop-ins are inert without systemd-oomd, aarch64 installs the zram generator
the zram drop-in needs, and the USB autosuspend option is ignored by a kernel
that builds usbcore in. default/settings-runtime-profile says so, file by
file; a recipe that finds it ships the same files on every architecture
(omacom/omarchy-pkgs#638), and older sources keep today's aarch64 package. A
test checks that every file it names exists and that each runtime decision is
in place.
maralcbr added a commit to omacom/omarchy-mac that referenced this pull request Sep 28, 2026
The omarchy-settings recipe leaves the mkinitcpio, Limine, memory and USB
drop-ins out of its aarch64 package, because they used to assume x86_64. That
leaves an aarch64 install without the HOOKS baseline its initramfs needs, and
without the zram and reclaim settings every other Omarchy machine gets.

Each of those files now decides at runtime whether it applies: the HOOKS
baseline asks the platform, thunderbolt is added only where the kernel has the
module, the Limine files are read only where Limine is installed, the oomd
drop-ins are inert without systemd-oomd, aarch64 installs the zram generator
the zram drop-in needs, and the USB autosuspend option is ignored by a kernel
that builds usbcore in. default/settings-runtime-profile says so, file by
file; a recipe that finds it ships the same files on every architecture
(omacom/omarchy-pkgs#638), and older sources keep today's aarch64 package. A
test checks that every file it names exists and that each runtime decision is
in place.
maralcbr added a commit to omacom/omarchy-mac that referenced this pull request Sep 28, 2026
The omarchy-settings recipe leaves the mkinitcpio, Limine, memory and USB
drop-ins out of its aarch64 package, because they used to assume x86_64. That
leaves an aarch64 install without the HOOKS baseline its initramfs needs, and
without the zram and reclaim settings every other Omarchy machine gets.

Each of those files now decides at runtime whether it applies: the HOOKS
baseline asks the platform, thunderbolt is added only where the kernel has the
module, the Limine files are read only where Limine is installed, the oomd
drop-ins are inert without systemd-oomd, aarch64 installs the zram generator
the zram drop-in needs, and the USB autosuspend option is ignored by a kernel
that builds usbcore in. default/settings-runtime-profile says so, file by
file; a recipe that finds it ships the same files on every architecture
(omacom/omarchy-pkgs#638), and older sources keep today's aarch64 package. A
test checks that every file it names exists and that each runtime decision is
in place.
jethrojones pushed a commit to jethrojones/omarchy-pkgs that referenced this pull request Sep 28, 2026
…e sources

omacom#638 gave omarchy-settings this and -dev was never ported, so edge, the only
channel aarch64 machines are qualified for, still stripped zram, oomd, zswap,
the sysctl tuning and USB autosuspend there: on Snapdragon, migration
1790328426 installs zram-generator, finds no dev-zram0.swap and completes
without zram. A source with default/settings-runtime-profile now gets the same
files, backup and optdepends on aarch64 as on x86_64, Thunderbolt drop-in
included, and its HOOKS files ship as they are. Older sources, including the
current quattro pin, keep today's aarch64 package. The platform guard and its
detector check stay aarch64-only (omacom#691, omacom#694). The keyboard backlight unit
first-run enables ships whenever the source has it, as in omarchy-settings.

tests/settings-runtime-profile.sh now runs both recipes. pkgrel 5 so the
recipe change builds; the payload from the current pin is unchanged.
maralcbr added a commit to omacom/omarchy-mac that referenced this pull request Sep 28, 2026
The omarchy-settings recipe leaves the mkinitcpio, Limine, memory and USB
drop-ins out of its aarch64 package, because they used to assume x86_64. That
leaves an aarch64 install without the HOOKS baseline its initramfs needs, and
without the zram and reclaim settings every other Omarchy machine gets.

Each of those files now decides at runtime whether it applies: the HOOKS
baseline asks the platform, thunderbolt is added only where the kernel has the
module, the Limine files are read only where Limine is installed, the oomd
drop-ins are inert without systemd-oomd, aarch64 installs the zram generator
the zram drop-in needs, and the USB autosuspend option is ignored by a kernel
that builds usbcore in. default/settings-runtime-profile says so, file by
file; a recipe that finds it ships the same files on every architecture
(omacom/omarchy-pkgs#638), and older sources keep today's aarch64 package. A
test checks that every file it names exists and that each runtime decision is
in place.
maralcbr added a commit to omacom/omarchy-mac that referenced this pull request Oct 6, 2026
The omarchy-settings recipe leaves the mkinitcpio, Limine, memory and USB
drop-ins out of its aarch64 package, because they used to assume x86_64. That
leaves an aarch64 install without the HOOKS baseline its initramfs needs, and
without the zram and reclaim settings every other Omarchy machine gets.

Each of those files now decides at runtime whether it applies: the HOOKS
baseline asks the platform, thunderbolt is added only where the kernel has the
module, the Limine files are read only where Limine is installed, the oomd
drop-ins are inert without systemd-oomd, aarch64 installs the zram generator
the zram drop-in needs, and the USB autosuspend option is ignored by a kernel
that builds usbcore in. default/settings-runtime-profile says so, file by
file; a recipe that finds it ships the same files on every architecture
(omacom/omarchy-pkgs#638), and older sources keep today's aarch64 package. A
test checks that every file it names exists and that each runtime decision is
in place.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant