Proof Portal
Omarchy
ProbeLabs65 findings · 95 requirementsA 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.
NVIDIA installs: `kms` hook bundles ~100 MB of unused nouveau GSP firmware into every initramfs/UKI
Reported by matjam · filed Aug 13, 2026Closed upstream on 2026-08-13 by the merge of PR #6791 (closed by dhh). GitHub close reason: completed.
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
What happens
On a machine using the proprietary NVIDIA driver, Omarchy's initramfs carries the in-tree nouveau driver plus its GSP firmware blobs — about 100 MB of compressed payload that is never used. With the UKI setup on Limine, my image was 256 MB (.initrd = 238 MB); a normal size for this configuration is 20–60 MB.
Largest cpio entries:
49.36 MiB usr/lib/firmware/nvidia/ga102/gsp/gsp-570.144.bin.zst
25.07 MiB usr/lib/firmware/nvidia/ga102/gsp/gsp-535.113.01.bin.zst
13.37 MiB usr/lib/firmware/nvidia/tu102/gsp/gsp-570.144.bin.zst
12.57 MiB usr/lib/firmware/nvidia/tu102/gsp/gsp-535.113.01.bin.zst
11.47 MiB usr/lib/modules/…/updates/dkms/nvidia.ko.zst
1.16 MiB usr/lib/modules/…/kernel/drivers/gpu/drm/nouveau/nouveau.ko.zstWhy
Two Omarchy components each do half the NVIDIA job and nothing reconciles them:
omarchy-settings-devships/etc/mkinitcpio.conf.d/omarchy_hooks.confwithkmsinHOOKS.install/hardware/nvidia.shwrites/etc/mkinitcpio.conf.d/nvidia.confwithMODULES+=(nvidia nvidia_modeset nvidia_uvm nvidia_drm)andoptions nvidia_drm modeset=1— proprietary early KMS, done correctly.
The kms hook then adds in-tree DRM drivers anyway; autodetect keeps nouveau because it matches the NVIDIA PCI device, and mkinitcpio bundles every firmware blob in nouveau's modinfo. The Arch wiki (NVIDIA → mkinitcpio) says to remove kms from HOOKS in exactly this configuration.
So every Omarchy user on the proprietary driver carries ~100 MB of dead firmware in each initramfs — doubled on /boot by the Limine fallback history, and slowing sd-stub's TPM measurement of the UKI.
Verified fix
A drop-in that subtracts kms from whatever omarchy_hooks.conf sets, e.g. /etc/mkinitcpio.conf.d/zz-no-kms.conf:
_hooks_no_kms=()
for _hook in ${HOOKS[@]}; do
[[ $_hook == kms ]] || _hooks_no_kms+=("$_hook")
done
HOOKS=("${_hooks_no_kms[@]}")
unset _hooks_no_kms _hookResult on my machine (RTX 4090, nvidia-open-dkms 610.57.04): UKI 256,183,296 → 144,066,048 bytes. nouveau.ko and its firmware gone; the two gsp_{ga10x,tu10x}.bin blobs owned by nvidia-utils correctly retained; all four nvidia DKMS modules still present; early KMS still works via nvidia_drm modeset=1 (modconf bundles the modprobe.d file). Boots fine.
A fix in Omarchy could be conditional: nvidia.sh already knows it's setting up the proprietary driver and could drop/filter the kms hook at the same time it writes nvidia.conf.
Possibly related prior art: #3619, where removing kms fixed a black LUKS prompt on Intel — a different symptom of the same hook loading drivers too early.
System
omarchy version: 4.0.0.r1689.g38542a1-1 (settings-dev channel)- linux 7.1.8.arch1-3, nvidia-open-dkms 610.57.04-1, RTX 4090, Limine + UKI + LUKS
Filed by Claude Fable 5 via Claude Code.
View raw text
## What happens
On a machine using the proprietary NVIDIA driver, Omarchy's initramfs carries the in-tree `nouveau` driver plus its GSP firmware blobs — about 100 MB of compressed payload that is never used. With the UKI setup on Limine, my image was **256 MB** (`.initrd` = 238 MB); a normal size for this configuration is 20–60 MB.
Largest cpio entries:
```
49.36 MiB usr/lib/firmware/nvidia/ga102/gsp/gsp-570.144.bin.zst
25.07 MiB usr/lib/firmware/nvidia/ga102/gsp/gsp-535.113.01.bin.zst
13.37 MiB usr/lib/firmware/nvidia/tu102/gsp/gsp-570.144.bin.zst
12.57 MiB usr/lib/firmware/nvidia/tu102/gsp/gsp-535.113.01.bin.zst
11.47 MiB usr/lib/modules/…/updates/dkms/nvidia.ko.zst
1.16 MiB usr/lib/modules/…/kernel/drivers/gpu/drm/nouveau/nouveau.ko.zst
```
## Why
Two Omarchy components each do half the NVIDIA job and nothing reconciles them:
- `omarchy-settings-dev` ships `/etc/mkinitcpio.conf.d/omarchy_hooks.conf` with `kms` in `HOOKS`.
- `install/hardware/nvidia.sh` writes `/etc/mkinitcpio.conf.d/nvidia.conf` with `MODULES+=(nvidia nvidia_modeset nvidia_uvm nvidia_drm)` and `options nvidia_drm modeset=1` — proprietary early KMS, done correctly.
The `kms` hook then adds in-tree DRM drivers anyway; `autodetect` keeps `nouveau` because it matches the NVIDIA PCI device, and mkinitcpio bundles every firmware blob in nouveau's modinfo. The [Arch wiki (NVIDIA → mkinitcpio)](https://wiki.archlinux.org/title/NVIDIA#Early_loading) says to remove `kms` from `HOOKS` in exactly this configuration.
So every Omarchy user on the proprietary driver carries ~100 MB of dead firmware in each initramfs — doubled on `/boot` by the Limine fallback history, and slowing sd-stub's TPM measurement of the UKI.
## Verified fix
A drop-in that subtracts `kms` from whatever `omarchy_hooks.conf` sets, e.g. `/etc/mkinitcpio.conf.d/zz-no-kms.conf`:
```sh
_hooks_no_kms=()
for _hook in ${HOOKS[@]}; do
[[ $_hook == kms ]] || _hooks_no_kms+=("$_hook")
done
HOOKS=("${_hooks_no_kms[@]}")
unset _hooks_no_kms _hook
```
Result on my machine (RTX 4090, `nvidia-open-dkms` 610.57.04): UKI **256,183,296 → 144,066,048 bytes**. `nouveau.ko` and its firmware gone; the two `gsp_{ga10x,tu10x}.bin` blobs owned by `nvidia-utils` correctly retained; all four nvidia DKMS modules still present; early KMS still works via `nvidia_drm modeset=1` (`modconf` bundles the modprobe.d file). Boots fine.
A fix in Omarchy could be conditional: `nvidia.sh` already knows it's setting up the proprietary driver and could drop/filter the `kms` hook at the same time it writes `nvidia.conf`.
Possibly related prior art: #3619, where removing `kms` fixed a black LUKS prompt on Intel — a different symptom of the same hook loading drivers too early.
## System
- `omarchy version`: 4.0.0.r1689.g38542a1-1 (settings-dev channel)
- linux 7.1.8.arch1-3, nvidia-open-dkms 610.57.04-1, RTX 4090, Limine + UKI + LUKS
Filed by Claude Fable 5 via Claude Code.
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.