Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 15 additions & 5 deletions pkgbuilds/omarchy-mac/PKGBUILD
Original file line number Diff line number Diff line change
Expand Up @@ -5,18 +5,22 @@ pkgname=omarchy-mac
# pkgver matches packages/omarchy-mac/version at _commit. Bump pkgrel to re-pin
# or rebuild the same add-on version; reset it to 1 when pkgver increases.
pkgver=0.1.0
pkgrel=6
pkgrel=8
pkgdesc='Apple Silicon configuration and support services for Omarchy'
arch=('aarch64')
groups=('omarchy-platform-apple-silicon')
# Owns /usr/share/omarchy-platform: one platform package per machine. Nothing
# may depend on omarchy-platform; the provide exists only for the conflict.
provides=('omarchy-platform')
conflicts=('omarchy-platform')
url='https://github.com/omacom/omarchy-mac'
license=('MIT')
makedepends=('git' 'findutils')
checkdepends=('diffutils' 'python' 'systemd')
# An exact quattro-upstream commit, never a branch.
_commit=ff7ce0d4dfaea9e17270b3061e642ee095b7b265
_commit=aaae2cddb33cf5a214628b4a31a9bfa7b5da23f7
source=("omarchy-mac::git+https://github.com/omacom/omarchy-mac.git#commit=${_commit}")
sha256sums=('7530c284cd323d451540205c0a677c4e187070f0b8c4081a2e85f487f2ebb985')
sha256sums=('6ddfb748e2b58777af95e3733d128479a1fe16775e95b1953b47181ac066df78')

prepare() {
# Tests and staging must not be able to read the surrounding desktop source.
Expand All @@ -32,10 +36,16 @@ check() {

package() {
# Runtime-only: the builder does not need the Omarchy desktop to stage or
# test the add-on.
# test the add-on. What every Mac needs comes from here, so an image's first
# boot has it offline and no owner can remove it: the speaker stack (whose
# speakersafetyd unit this package presets), audio routing, the GPU's Vulkan
# driver and the keyring for the Asahi repository its pacman templates
# configure. The runtime's Apple package list keeps the removable defaults
# (video decode, wf-recorder, widevine, asahi-bless).
depends=('omarchy' 'bash' 'coreutils' 'diffutils' 'grep' 'sed' 'gawk' 'systemd' 'pciutils' 'kmod'
'mkinitcpio' 'networkmanager' 'iwd' 'python' 'pipewire' 'pipewire-pulse' 'libpulse' 'wireplumber'
'asahi-audio' 'alsa-ucm-conf-asahi' 'rtkit' 'pipewire-alsa')
'asahi-audio' 'speakersafetyd' 'alsa-ucm-conf-asahi' 'rtkit' 'pipewire-alsa'
'vulkan-asahi' 'asahi-alarm-keyring')

"$srcdir/addon/install" "$pkgdir"
install -Dm644 "$srcdir/addon/README.md" "$pkgdir/usr/share/doc/$pkgname/README.md"
Expand Down
10 changes: 9 additions & 1 deletion pkgbuilds/omarchy-mac/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,20 @@ Ported from Scott Jones's recipe in omarchy-mac/omarchy-pkgs-aarch64 (`pkgbuilds

## Scope

The package is aarch64-only and published to edge only. It widens to rc and stable only after M1 and M2 cold-boot qualification. It depends on the generic `omarchy` package and has no `provides`, so nothing generic can pull it onto non-Apple aarch64 machines. It ships no kernel, boot, installer or trust configuration; those belong to `omarchy-mac-boot`.
The package is aarch64-only and published to edge only. It widens to rc and stable only after M1 and M2 cold-boot qualification. It depends on the generic `omarchy` package. Its only `provides` is `omarchy-platform`, paired with `conflicts=('omarchy-platform')`: it owns `/usr/share/omarchy-platform`, the platform root Omarchy reads, so only one platform package can be installed. Nothing may depend on `omarchy-platform`, or a dependency could pull this package onto non-Apple aarch64 machines. It ships no kernel, boot, installer or trust configuration; those belong to `omarchy-mac-boot`.

Installing the package enables no services, but its vendor configuration applies on the next service start or module load: the iwd Wi-Fi backend for NetworkManager, the `appledrm` notch option and the WirePlumber headset microphone policy. `omarchy-mac-setup-system` and `omarchy-mac-setup-user` enable the Wi-Fi resume and microphone units, and they exit unless `omarchy-hw-apple-silicon` reports Apple Silicon. Stock Omarchy does not yet ship that detector or call these entrypoints, so on a stock install the units stay disabled until the platform detector and profile work lands.

Runtime dependencies are declared in `package()`, so the builder stages and tests the add-on without installing the desktop.

## Ownership move (from omacom/omarchy-mac#631)

From this pin the package ships its setup entrypoints in `/usr/lib/omarchy/mac`, the Apple pacman templates in `/usr/share/omarchy-mac/pacman` and the three-finger workspace swipe in `/usr/share/omarchy/default/hypr/platform`, and owns `/usr/bin/omarchy-hw-apple` and `/usr/share/omarchy/bin/omarchy-hw-apple`, which a quattro-upstream runtime built before that commit shipped. The runtime and this package must upgrade in one transaction, from the same candidate set; installing only this package over an older quattro runtime stops on the file conflict, and upgrading only the runtime drops the alias.

## Platform root (from omacom/omarchy-mac#660)

From this pin (`49c01e2dd`, 0.1.0-8) the package ships the Mac's desktop files in `/usr/share/omarchy-platform` (Hyprland defaults, settings and gestures, key names, notch cutouts and `displays.conf`), which the runtime from omacom/omarchy#13362 reads at that fixed path, and keeps identical copies at the old `/usr/share/omarchy/default/.../platform` paths for a runtime that does not read the root yet. Publish it with or before that runtime: the runtime with an older omarchy-mac loses the Mac's binds, key names, notch cutouts and backlight choice.

## Updates

Updates are reviewed pins, never a branch. To release a change to the add-on:
Expand Down
Loading