Proof Portal

Project overview

Omarchy

ProbeLabs65 findings · 95 requirements

A proof layer — requirements, tests and verified fixes — for two of Omarchy's subsystems: the application menu (launcher scripts, QML model, JSONC config, search and selection) and the lock screen (lock scripts, QML, PAM authentication). Scope is deliberately limited to those components of omacom/omarchy; the rest of the distribution is not covered.

Inbox
ReportR-1698GitHub issuePublicReceived

T2 + t2archinstall overlay: Limine writes branding-only to the ESP, linux-t2 never becomes an entry, PipeWire has no ALSA SPA

Reported by twfyke · filed Aug 18, 2026Closed upstream on 2026-10-08 by the bot omarchybot, as not planned.

Received and recorded verbatim. Nothing has been checked yet.

At a glance

1 · What is claimed?
Only the report text below — no validator has restated it as checkable claims yet.
2 · What does it affect?
Not yet mapped to any requirement or component.
3 · Is it reproducible?
No validation has been run yet.
4 · What remains unclear?
  • Not validated yet: no claims, no reproducer.
5 · What happens next?
Our staff decide whether the report is valid. Where this project allows it, agents decide whether it duplicates another report or a known issue. No decision has been recorded yet.

Original report

T2 + t2archinstall overlay: Limine writes branding-only to the ESP, linux-t2 never becomes an entry, PipeWire has no ALSA SPArevision 1 · captured 2026-09-28 21:29 UTC via poll

System details: Apple MacBookPro16,3 (T2, PCI 106b:1801 / 106b:1802), linux-t2 7.1.8.arch1-3, firmware 2103.100.6.0.0. Arch was laid down with t2linux/archiso-t2 + t2archinstall, then Omarchy was overlaid with curl -fsSL https://omarchy.org/install from the live USB. install/hardware/apple/fix-t2.sh did run (linux-t2, apple-t2-audio-config, apple-bcm-firmware, t2fanrd, T2 cmdline). Related: #7110 / https://github.com/basecamp/omarchy/pull/7343. Docs: manual/44-mac-support.md.

Why this path: the stock Omarchy ISO USB dropped on this T2 (the usual t2linux USB failure). I am not claiming the official installer is broken when it can boot. I am claiming this overlay path, which is what you actually end up on when the official stick will not stay up, does not finish as a bootable Omarchy T2 machine.

Layout t2archinstall writes

  • nvme0n1p1 ESP, vfat, mounted at `/boot/efi` (UUID 0869-BD11)
  • /boot is not a mount. It is a directory on the btrfs root (@)
  • Kernels live at /boot/vmlinuz-linux-t2 and /boot/initramfs-linux-t2.img
  • Apple firmware (hold Option) boots EFI/BOOT/BOOTX64.EFI from the ESP and reads limine.conf next to that EFI binary, not a file on btrfs

Omarchy Limine still has the stock defaults after the overlay:

ESP_PATH="/boot"
TARGET_OS_NAME="Omarchy"
ENABLE_UKI=yes
CUSTOM_UKI_NAME="omarchy"

1. Limine writes branding, never a linux-t2 entry

default/limine/limine.conf is branding only (Tokyo Night, no /Omarchy linux entry). bin/omarchy-refresh-limine replaces /boot/limine.conf with that file, then runs limine-update.

On this box limine-update toasted `Target OS name 'Omarchy' not found` and left no kernel entry. The smoking gun is still on the ESP:

$ cat /boot/efi/limine.conf.old

That file is byte-for-byte the Omarchy branding template (default_entry: 2, interface_branding: Omarchy Bootloader, no protocol: linux stanza).

Mac firmware never sees /boot/limine.conf on btrfs. It sees /boot/efi/EFI/BOOT/limine.conf (and the copies at /boot/efi/limine.conf and /boot/efi/EFI/limine/limine.conf). Gold EFI fallback black-screened. The machine only boots if you unplug the USB, hold Option, and pick Arch, not the gold EFI entry.

The entry that actually boots:

timeout: 10
/Omarchy
    protocol: linux
    path: boot():/vmlinuz-linux-t2
    cmdline: root=UUID=0c38eadc-4aa4-446b-8cc3-e98e3dd02105 rw rootflags=subvol=@ intel_iommu=on iommu=pt pcie_ports=compat
    module_path: boot():/initramfs-linux-t2.img

vmlinuz-linux-t2 and initramfs-linux-t2.img have to live on the ESP. A kernel upgrade that only writes /boot leaves the Mac on the old image, or unbootable.

omarchy-refresh-limine / a blind limine-update can put the branding-only file back and the next reboot is a black screen.

2. Enroll hook

/etc/boot/hooks/pre.d/10-limine-reset-enroll (limine-reset-enroll) plus post.d/90-limine-enroll-config rewrite the enrolled Limine config. On this layout that reset the working ESP entry. The reset hook is renamed 10-limine-reset-enroll.disabled so a pacman/limine run cannot wipe boot again.

3. PipeWire has no ALSA SPA after this overlay

fix-t2.sh installs apple-t2-audio-config (and the T2 kernel, firmware, fan daemon). It does not install the PipeWire ALSA plugin. install/omarchy-other.packages lists pipewire-alsa / pipewire-pulse, but this overlay did not have them.

WirePlumber on first desktop:

wp-device: SPA handle 'api.alsa.enum.udev' could not be loaded; is it installed?
s-monitors: PipeWire's ALSA SPA plugin is missing or broken. Sound cards will not be supported

No speaker sink, volume keys dead, Spotify silent. T2 audio hardware is there (106b:1803). Pacman first installed the missing pieces at 2026-08-17T21:43:44-0400:

pacman -S --needed pipewire-audio pipewire-pulse pipewire-alsa

After that: alsa_output.pci-0000_02_00.3.HiFi__Speaker__sink, volume keys and Spotify work. Touch Bar function row is the kernel hid_appletb_* path; tiny-dfr was not required.

What this is not

  • Not a report that the official Omarchy ISO T2 path is broken when /boot is the ESP. I could not finish that ISO on this machine.
  • Not a request to support dual-boot. This disk is Omarchy-only.
  • Not #7110 (global hid_apple fnmode=2). That is a separate PR.

What would make the overlay path actually work

Hypothesis, not a patch. Happy to send small cited PRs if this matches what you want:

  1. If /boot is not vfat and /boot/efi is the ESP, set ESP_PATH=/boot/efi and install vmlinuz-linux-t2 + initramfs-linux-t2.img onto that ESP. Apple firmware cannot read a btrfs /boot.
  2. limine-update should emit a protocol: linux /Omarchy entry for vmlinuz-linux-t2 when no UKI exists, instead of toasting Target OS name 'Omarchy' not found and leaving branding only.
  3. omarchy-refresh-limine should not replace a working linux-t2 entry with the branding template when limine-update cannot find TARGET_OS_NAME.
  4. fix-t2.sh should omarchy-pkg-add pipewire-audio pipewire-alsa pipewire-pulse. T2 audio config without the ALSA SPA plugin is a silent machine.

I can split 4 into its own PR. 1-3 are the boot-safety ones.

View raw text
**System details:** Apple MacBookPro16,3 (T2, PCI `106b:1801` / `106b:1802`), `linux-t2 7.1.8.arch1-3`, firmware `2103.100.6.0.0`. Arch was laid down with [t2linux/archiso-t2](https://github.com/t2linux/archiso-t2) + t2archinstall, then Omarchy was overlaid with `curl -fsSL https://omarchy.org/install` from the live USB. `install/hardware/apple/fix-t2.sh` did run (linux-t2, apple-t2-audio-config, apple-bcm-firmware, t2fanrd, T2 cmdline). Related: #7110 / https://github.com/basecamp/omarchy/pull/7343. Docs: `manual/44-mac-support.md`.

**Why this path:** the stock Omarchy ISO USB dropped on this T2 (the usual t2linux USB failure). I am not claiming the official installer is broken when it can boot. I am claiming this overlay path, which is what you actually end up on when the official stick will not stay up, does not finish as a bootable Omarchy T2 machine.

## Layout t2archinstall writes

- `nvme0n1p1` ESP, vfat, mounted at **`/boot/efi`** (UUID `0869-BD11`)
- `/boot` is **not a mount**. It is a directory on the btrfs root (`@`)
- Kernels live at `/boot/vmlinuz-linux-t2` and `/boot/initramfs-linux-t2.img`
- Apple firmware (hold Option) boots `EFI/BOOT/BOOTX64.EFI` from the ESP and reads `limine.conf` next to that EFI binary, not a file on btrfs

Omarchy Limine still has the stock defaults after the overlay:

```
ESP_PATH="/boot"
TARGET_OS_NAME="Omarchy"
ENABLE_UKI=yes
CUSTOM_UKI_NAME="omarchy"
```

## 1. Limine writes branding, never a linux-t2 entry

`default/limine/limine.conf` is branding only (Tokyo Night, no `/Omarchy` linux entry). `bin/omarchy-refresh-limine` replaces `/boot/limine.conf` with that file, then runs `limine-update`.

On this box `limine-update` toasted **`Target OS name 'Omarchy' not found`** and left no kernel entry. The smoking gun is still on the ESP:

```
$ cat /boot/efi/limine.conf.old
```

That file is byte-for-byte the Omarchy branding template (`default_entry: 2`, `interface_branding: Omarchy Bootloader`, no `protocol: linux` stanza).

Mac firmware never sees `/boot/limine.conf` on btrfs. It sees `/boot/efi/EFI/BOOT/limine.conf` (and the copies at `/boot/efi/limine.conf` and `/boot/efi/EFI/limine/limine.conf`). Gold EFI fallback black-screened. The machine only boots if you unplug the USB, hold Option, and pick **Arch**, not the gold EFI entry.

The entry that actually boots:

```
timeout: 10
/Omarchy
    protocol: linux
    path: boot():/vmlinuz-linux-t2
    cmdline: root=UUID=0c38eadc-4aa4-446b-8cc3-e98e3dd02105 rw rootflags=subvol=@ intel_iommu=on iommu=pt pcie_ports=compat
    module_path: boot():/initramfs-linux-t2.img
```

`vmlinuz-linux-t2` and `initramfs-linux-t2.img` have to live **on the ESP**. A kernel upgrade that only writes `/boot` leaves the Mac on the old image, or unbootable.

`omarchy-refresh-limine` / a blind `limine-update` can put the branding-only file back and the next reboot is a black screen.

## 2. Enroll hook

`/etc/boot/hooks/pre.d/10-limine-reset-enroll` (`limine-reset-enroll`) plus `post.d/90-limine-enroll-config` rewrite the enrolled Limine config. On this layout that reset the working ESP entry. The reset hook is renamed `10-limine-reset-enroll.disabled` so a pacman/limine run cannot wipe boot again.

## 3. PipeWire has no ALSA SPA after this overlay

`fix-t2.sh` installs `apple-t2-audio-config` (and the T2 kernel, firmware, fan daemon). It does not install the PipeWire ALSA plugin. `install/omarchy-other.packages` lists `pipewire-alsa` / `pipewire-pulse`, but this overlay did not have them.

WirePlumber on first desktop:

```
wp-device: SPA handle 'api.alsa.enum.udev' could not be loaded; is it installed?
s-monitors: PipeWire's ALSA SPA plugin is missing or broken. Sound cards will not be supported
```

No speaker sink, volume keys dead, Spotify silent. T2 audio hardware is there (`106b:1803`). Pacman first installed the missing pieces at `2026-08-17T21:43:44-0400`:

```
pacman -S --needed pipewire-audio pipewire-pulse pipewire-alsa
```

After that: `alsa_output.pci-0000_02_00.3.HiFi__Speaker__sink`, volume keys and Spotify work. Touch Bar function row is the kernel `hid_appletb_*` path; `tiny-dfr` was not required.

## What this is not

- Not a report that the official Omarchy ISO T2 path is broken when `/boot` **is** the ESP. I could not finish that ISO on this machine.
- Not a request to support dual-boot. This disk is Omarchy-only.
- Not #7110 (global `hid_apple fnmode=2`). That is a separate PR.

## What would make the overlay path actually work

Hypothesis, not a patch. Happy to send small cited PRs if this matches what you want:

1. If `/boot` is not vfat and `/boot/efi` is the ESP, set `ESP_PATH=/boot/efi` and install `vmlinuz-linux-t2` + `initramfs-linux-t2.img` onto that ESP. Apple firmware cannot read a btrfs `/boot`.
2. `limine-update` should emit a `protocol: linux` `/Omarchy` entry for `vmlinuz-linux-t2` when no UKI exists, instead of toasting `Target OS name 'Omarchy' not found` and leaving branding only.
3. `omarchy-refresh-limine` should not replace a working linux-t2 entry with the branding template when `limine-update` cannot find `TARGET_OS_NAME`.
4. `fix-t2.sh` should `omarchy-pkg-add pipewire-audio pipewire-alsa pipewire-pulse`. T2 audio config without the ALSA SPA plugin is a silent machine.

I can split 4 into its own PR. 1-3 are the boot-safety ones.

Validation

Not checked yet. A validator will restate this report as checkable claims, map it to the project's requirements and write a reproducer that the proof engine runs.

Linked

Not linked to any known issue, other report or change yet.

Decision

Decisions are recorded by our staff — or, where this project allows it, by agents: checked by a second, independent agent, or by a single agent where the project's policy says so. Any decision reached so far is shown below.

No decision has been recorded yet.