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-299GitHub issuePublicDecided· Out of scope

omarchy-hw-fingerprint only detects USB readers; SPI sensors (e.g. Goodix GXFP51A7) are a false negative

Reported by delitdesnoyers06-del · filed Sep 20, 2026 · open at source

Decided: Out of scope — decided by agents · verified 3 days ago.

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?
AreaOutside the audited area· Decided by agents · verified
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?
Decided by agents and verified by a second, independent agent — see the decision.

Original report

omarchy-hw-fingerprint only detects USB readers; SPI sensors (e.g. Goodix GXFP51A7) are a false negativerevision 1 · captured 2026-09-28 21:23 UTC via poll

What happened

omarchy setup security fingerprint aborts with "No fingerprint sensor detected." on a laptop whose fingerprint reader works correctly through fprintd (enrolment and verification both succeed immediately before running the wizard).

Expected

The wizard should detect the reader and configure PAM — or at least not refuse to continue on a reader that fprintd is already driving successfully.

Root cause

omarchy-hw-fingerprint only scans /sys/bus/usb/devices:

usb_devices_path="${OMARCHY_USB_DEVICES_PATH:-/sys/bus/usb/devices}"

for dev in "$usb_devices_path"/*; do
  ...
done

That misses SPI readers entirely. This reader is a Goodix GXFP51A7 on the SPI bus (pxa2xx-spi), ACPI HID GXFP51A7, exposed through spidev:

/sys/bus/spi/devices/spi-GXFP51A7:00   modalias: acpi:GXFP51A7:GXFP51A7:

It is a supported libfprint TOD reader (libfprint-tod), and both of these succeed before the wizard is run:

fprintd-enroll   # Enroll result: enroll-completed
fprintd-verify   # Verify result: verify-match (done)

Secondary issue: package conflict

Even if detection returned true, the wizard runs:

sudo pacman -S --needed --noconfirm --ask 4 libfprint-git fprintd usbutils

libfprint-git provides libfprint and conflicts with the libfprint-tod package that TOD/SPI drivers load their .so from. On a machine that already has a working TOD driver, --ask 4 would replace the working library, so proceeding can break a reader that currently works.

Steps to reproduce

  1. On a laptop with an SPI fingerprint reader supported by libfprint-tod (here: Huawei MateBook 13 2019, ACPI GXFP51A7), confirm the reader works:
   fprintd-enroll
   fprintd-verify
  1. Run:
   omarchy setup security fingerprint
  1. Observe:
   Setting up fingerprint scanner for authentication.

   No fingerprint sensor detected.

Exits 1 before touching PAM.

System details

  • Omarchy: 4.0.4-1
  • Laptop: HUAWEI WRT-WX9 (MateBook 13 2019)
  • CPU / GPU: Intel i7-8565U / UHD Graphics 620
  • Kernel: 7.2.5-3-omarchy
  • Packages: fprintd 1.94.5-2, libfprint-tod 1.95.2+tod1-1
  • Reader: /sys/bus/spi/devices/spi-GXFP51A7:00 → acpi:GXFP51A7:GXFP51A7:
  • omarchy debug is not a command in 4.0.4-1, so diagnostics above are gathered directly.

Suggested fix

  1. Teach omarchy-hw-fingerprint to also consider SPI readers: scan /sys/bus/spi/devices/*/modalias for the known Goodix ACPI ids (e.g. acpi:GXFP51*, acpi:GXFP5187*), and only then consult the USB vendor/product list.
  2. Make the dependency step aware of libfprint-tod: skip libfprint-git (or prompt) when a TOD driver is already installed and working, rather than replacing it.

Workaround

Apply the PAM configuration the wizard installs after a successful enrol+verify by hand — /etc/pam.d/sudo, /etc/pam.d/polkit-1 and /etc/pam.d/omarchy-lock-fingerprint — then the fingerprint works for sudo, polkit and the lock screen. This requires reading the wizard's source, so it is not discoverable for a normal user.

View raw text
## What happened

`omarchy setup security fingerprint` aborts with **"No fingerprint sensor detected."** on a laptop whose fingerprint reader works correctly through `fprintd` (enrolment and verification both succeed immediately before running the wizard).

## Expected

The wizard should detect the reader and configure PAM — or at least not refuse to continue on a reader that `fprintd` is already driving successfully.

## Root cause

`omarchy-hw-fingerprint` only scans `/sys/bus/usb/devices`:

```bash
usb_devices_path="${OMARCHY_USB_DEVICES_PATH:-/sys/bus/usb/devices}"

for dev in "$usb_devices_path"/*; do
  ...
done
```

That misses **SPI** readers entirely. This reader is a Goodix **GXFP51A7** on the SPI bus (`pxa2xx-spi`), ACPI HID `GXFP51A7`, exposed through `spidev`:

```
/sys/bus/spi/devices/spi-GXFP51A7:00   modalias: acpi:GXFP51A7:GXFP51A7:
```

It is a supported libfprint TOD reader (`libfprint-tod`), and both of these succeed before the wizard is run:

```
fprintd-enroll   # Enroll result: enroll-completed
fprintd-verify   # Verify result: verify-match (done)
```

## Secondary issue: package conflict

Even if detection returned true, the wizard runs:

```bash
sudo pacman -S --needed --noconfirm --ask 4 libfprint-git fprintd usbutils
```

`libfprint-git` provides `libfprint` and conflicts with the `libfprint-tod` package that TOD/SPI drivers load their `.so` from. On a machine that already has a working TOD driver, `--ask 4` would replace the working library, so proceeding can break a reader that currently works.

## Steps to reproduce

1. On a laptop with an SPI fingerprint reader supported by `libfprint-tod` (here: Huawei MateBook 13 2019, ACPI `GXFP51A7`), confirm the reader works:

   ```bash
   fprintd-enroll
   fprintd-verify
   ```

2. Run:

   ```bash
   omarchy setup security fingerprint
   ```

3. Observe:

   ```
   Setting up fingerprint scanner for authentication.

   No fingerprint sensor detected.
   ```

   Exits 1 before touching PAM.

## System details

- Omarchy: `4.0.4-1`
- Laptop: HUAWEI WRT-WX9 (MateBook 13 2019)
- CPU / GPU: Intel i7-8565U / UHD Graphics 620
- Kernel: `7.2.5-3-omarchy`
- Packages: `fprintd 1.94.5-2`, `libfprint-tod 1.95.2+tod1-1`
- Reader: `/sys/bus/spi/devices/spi-GXFP51A7:00` → `acpi:GXFP51A7:GXFP51A7:`
- `omarchy debug` is not a command in `4.0.4-1`, so diagnostics above are gathered directly.

## Suggested fix

1. Teach `omarchy-hw-fingerprint` to also consider SPI readers: scan `/sys/bus/spi/devices/*/modalias` for the known Goodix ACPI ids (e.g. `acpi:GXFP51*`, `acpi:GXFP5187*`), and only then consult the USB vendor/product list.
2. Make the dependency step aware of `libfprint-tod`: skip `libfprint-git` (or prompt) when a TOD driver is already installed and working, rather than replacing it.

## Workaround

Apply the PAM configuration the wizard installs after a successful enrol+verify by hand — `/etc/pam.d/sudo`, `/etc/pam.d/polkit-1` and `/etc/pam.d/omarchy-lock-fingerprint` — then the fingerprint works for `sudo`, polkit and the lock screen. This requires reading the wizard's source, so it is not discoverable for a normal user.

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.

  • Out of scopeDecided by agents · verified · 2026-10-09 16:11 UTC