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.
Bluetooth panel cannot pair passkey devices (keyboards) — no BlueZ agent registered, failure is silent
Reported by sk-hansen · filed Sep 3, 2026Closed upstream on 2026-09-21 by bjarneo via an automated message, as a duplicate of #8485 (R-1398). 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 happened
Pairing a Microsoft Surface Keyboard (BLE HID, passkey-entry pairing) from the Omarchy Bluetooth panel never completes. The device flaps between connecting and disconnected in the panel, and ends up in BlueZ as Trusted: yes, Paired: no, Bonded: no.
journalctl -u bluetooth shows the root cause, repeated on every attempt:
bluetoothd[2677]: src/device.c:new_auth() No agent available for request type 2
bluetoothd[2677]: device_confirm_passkey: Operation not permittedWhy
omarchy-bluetooth-device pair runs:
timeout 20s bluetoothctl pair "$address" >/dev/null 2>&1 || true
trust_device
timeout 20s bluetoothctl connect "$address" >/dev/null 2>&1 || true- No BlueZ pairing agent is registered anywhere (neither in the script nor in the Quickshell shell —
grep -rn 'RegisterAgent\|RequestPasskey' /usr/share/omarchy/shellfinds nothing), so any device requiring passkey confirmation/entry (request type 2) is rejected by bluetoothd. - The failure is swallowed (
>/dev/null 2>&1 || true), the device is trusted anyway, andconnectis attempted against an unbonded HID device — producing the connect/drop loop visible in the panel with no error surfaced to the user.
Simple-pairing devices (headsets etc.) work; anything that needs a passkey (most BT keyboards) cannot be paired through Omarchy's UI at all. Workaround is interactive bluetoothctl with agent KeyboardOnly.
Expected
Either the shell registers a pairing agent and shows the passkey to type on the device, or the pair action surfaces the failure instead of silently trusting and retrying.
Steps to reproduce
- Put any passkey-entry BT keyboard (e.g. Surface Keyboard) in pairing mode.
- Open the Omarchy Bluetooth panel, click the device to pair.
- Watch it cycle "Connecting…" / disconnected;
bluetoothctl info <addr>showsPaired: no, journal showsNo agent available for request type 2.
System
- Omarchy 4.0.2-1
- BlueZ via bluetoothd, adapter: Realtek RTL8761BU USB dongle (0bda:8771)
Filed by Claude (Opus 4.6) via pi coding agent.
View raw text
## What happened Pairing a Microsoft Surface Keyboard (BLE HID, passkey-entry pairing) from the Omarchy Bluetooth panel never completes. The device flaps between connecting and disconnected in the panel, and ends up in BlueZ as `Trusted: yes, Paired: no, Bonded: no`. `journalctl -u bluetooth` shows the root cause, repeated on every attempt: ``` bluetoothd[2677]: src/device.c:new_auth() No agent available for request type 2 bluetoothd[2677]: device_confirm_passkey: Operation not permitted ``` ## Why `omarchy-bluetooth-device pair` runs: ```bash timeout 20s bluetoothctl pair "$address" >/dev/null 2>&1 || true trust_device timeout 20s bluetoothctl connect "$address" >/dev/null 2>&1 || true ``` - No BlueZ pairing agent is registered anywhere (neither in the script nor in the Quickshell shell — `grep -rn 'RegisterAgent\|RequestPasskey' /usr/share/omarchy/shell` finds nothing), so any device requiring passkey confirmation/entry (request type 2) is rejected by bluetoothd. - The failure is swallowed (`>/dev/null 2>&1 || true`), the device is trusted anyway, and `connect` is attempted against an unbonded HID device — producing the connect/drop loop visible in the panel with no error surfaced to the user. Simple-pairing devices (headsets etc.) work; anything that needs a passkey (most BT keyboards) cannot be paired through Omarchy's UI at all. Workaround is interactive `bluetoothctl` with `agent KeyboardOnly`. ## Expected Either the shell registers a pairing agent and shows the passkey to type on the device, or the pair action surfaces the failure instead of silently trusting and retrying. ## Steps to reproduce 1. Put any passkey-entry BT keyboard (e.g. Surface Keyboard) in pairing mode. 2. Open the Omarchy Bluetooth panel, click the device to pair. 3. Watch it cycle "Connecting…" / disconnected; `bluetoothctl info <addr>` shows `Paired: no`, journal shows `No agent available for request type 2`. ## System - Omarchy 4.0.2-1 - BlueZ via bluetoothd, adapter: Realtek RTL8761BU USB dongle (0bda:8771) Filed by Claude (Opus 4.6) via pi coding agent.
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.