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.
Xbox controller installer blacklists xpad, breaking all wired Xbox controllers
Reported by mateuspim · filed Aug 16, 2026 · open at source
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
What happened
omarchy-install-gaming-xbox-controllers writes a global xpad blacklist:
# Prevent xpad/xpadneo driver conflict
echo blacklist xpad | sudo tee /etc/modprobe.d/blacklist-xpad.conf >/dev/nullThis silently breaks wired/USB Xbox controllers for everyone who installs Xbox controller support. After running the installer, plugging in a controller over USB enumerates the device but binds no driver and creates no input node:
$ lsusb | grep 045e
Bus 005 Device 011: ID 045e:0b12 Microsoft Corp. Xbox Controller
$ for i in /sys/bus/usb/devices/5-1.4/5-1.4:*; do \
echo "$(basename $i): driver=$(basename $(readlink -f $i/driver))"; done
5-1.4:1.0: driver= # class ff, unbound
5-1.4:1.1: driver= # class ff, unbound
5-1.4:1.2: driver= # class ff, unbound
$ ls /dev/input/js*
# nothing from the USB deviceThe controller charges and its LED lights, so it looks connected — it just produces no input. That makes this fairly confusing to diagnose from the user side.
What I expected
Installing Xbox controller support should not remove wired controller support. xpadneo is a Bluetooth driver; xpad is the USB driver. Both should be able to coexist.
The stated rationale does not hold
The comment says the blacklist prevents an "xpad/xpadneo driver conflict". The two modules claim strictly disjoint transports, so no such conflict is possible:
$ modinfo xpad | grep ^alias | sed 's/alias: *//' | cut -c1-4 | sort -u
usb: # 57 USB vendor patterns, all bus-type usb
$ modinfo xpad | grep -c b0005
0 # claims zero Bluetooth (BUS_BLUETOOTH) devices
$ modinfo hid_xpadneo | grep ^alias | sed 's/alias: *//'
hid:b0005g*v0000045Ep000002E0
hid:b0005g*v0000045Ep000002FD
hid:b0005g*v0000045Ep00000B05
hid:b0005g*v0000045Ep00000B13
hid:b0005g*v0000045Ep00000B20
hid:b0005g*v0000045Ep00000B22
hid:b0005g*v00000B05p00001ABD
# b0005 = BUS_BLUETOOTH onlyxpad binds USB devices; xpadneo binds only b0005 (Bluetooth) HID devices. They never contend for the same device.
For what it's worth, blacklisting xpad is a documented requirement for xone and xow, which drive the Xbox Wireless Dongle over USB and therefore do overlap with xpad. It looks like the requirement was carried over to xpadneo, where it does not apply.
This also matches the script's own scope — it prints "Installing Xbox controller Bluetooth support…" and ends with "Now you can pair your Xbox controller with Bluetooth" — but the blacklist it writes is global.
Steps to reproduce
- Run Xbox controller install (menu → Install → Gaming → Xbox Controllers), or
omarchy-install-gaming-xbox-controllers - Reboot (or
sudo modprobe -r xpad) - Connect an Xbox controller over USB
ls /dev/input/js*— no node is created for the wired device;jstest/games see nothing
Removing /etc/modprobe.d/blacklist-xpad.conf and running sudo modprobe xpad restores wired support immediately, with Bluetooth via xpadneo continuing to work normally. Both then coexist:
js0 -> Xbox Wireless Controller (bluetooth, xpadneo)
js1 -> Microsoft Xbox Series S|X Controller (usb, xpad)Suggested fix
Drop these two lines from omarchy-install-gaming-xbox-controllers:
echo blacklist xpad | sudo tee /etc/modprobe.d/blacklist-xpad.conf >/dev/null
...
if lsmod | grep -q '^xpad '; then
sudo modprobe -r xpad 2>/dev/null || needs_reboot=true
fi/etc/modules-load.d/xpadneo.conf and the input group handling are both fine and should stay. omarchy-remove-gaming-xbox-controllers already removes the blacklist file, so it would need its rm adjusted, though leaving it is harmless for existing installs.
One migration wrinkle: users who already ran the installer keep the file, since nothing removes it on update.
System
| Omarchy | 4.0.0-1 | |
| Kernel | 7.1.8-arch1-3 | |
| CPU | AMD Ryzen 9 9900X | |
| GPU | NVIDIA RTX 4080 / AMD Granite Ridge | |
| xpadneo-dkms | 0.10.4-1 | |
| Controller | Xbox Series S\ | X, USB 045e:0b12 |
Note: omarchy --help advertises omarchy debug ("Print debugging information") but the command does not exist in 4.0.0-1 — omarchy debug returns "Unknown Omarchy command", so no debug log is attached. Possibly worth a separate issue.
View raw text
### What happened
`omarchy-install-gaming-xbox-controllers` writes a global `xpad` blacklist:
```bash
# Prevent xpad/xpadneo driver conflict
echo blacklist xpad | sudo tee /etc/modprobe.d/blacklist-xpad.conf >/dev/null
```
This silently breaks **wired/USB** Xbox controllers for everyone who installs Xbox controller support. After running the installer, plugging in a controller over USB enumerates the device but binds no driver and creates no input node:
```
$ lsusb | grep 045e
Bus 005 Device 011: ID 045e:0b12 Microsoft Corp. Xbox Controller
$ for i in /sys/bus/usb/devices/5-1.4/5-1.4:*; do \
echo "$(basename $i): driver=$(basename $(readlink -f $i/driver))"; done
5-1.4:1.0: driver= # class ff, unbound
5-1.4:1.1: driver= # class ff, unbound
5-1.4:1.2: driver= # class ff, unbound
$ ls /dev/input/js*
# nothing from the USB device
```
The controller charges and its LED lights, so it looks connected — it just produces no input. That makes this fairly confusing to diagnose from the user side.
### What I expected
Installing Xbox controller support should not remove wired controller support. `xpadneo` is a Bluetooth driver; `xpad` is the USB driver. Both should be able to coexist.
### The stated rationale does not hold
The comment says the blacklist prevents an "xpad/xpadneo driver conflict". The two modules claim strictly disjoint transports, so no such conflict is possible:
```bash
$ modinfo xpad | grep ^alias | sed 's/alias: *//' | cut -c1-4 | sort -u
usb: # 57 USB vendor patterns, all bus-type usb
$ modinfo xpad | grep -c b0005
0 # claims zero Bluetooth (BUS_BLUETOOTH) devices
$ modinfo hid_xpadneo | grep ^alias | sed 's/alias: *//'
hid:b0005g*v0000045Ep000002E0
hid:b0005g*v0000045Ep000002FD
hid:b0005g*v0000045Ep00000B05
hid:b0005g*v0000045Ep00000B13
hid:b0005g*v0000045Ep00000B20
hid:b0005g*v0000045Ep00000B22
hid:b0005g*v00000B05p00001ABD
# b0005 = BUS_BLUETOOTH only
```
`xpad` binds USB devices; `xpadneo` binds only `b0005` (Bluetooth) HID devices. They never contend for the same device.
For what it's worth, blacklisting `xpad` **is** a documented requirement for [xone](https://github.com/medusalix/xone) and xow, which drive the Xbox Wireless *Dongle* over USB and therefore do overlap with `xpad`. It looks like the requirement was carried over to xpadneo, where it does not apply.
This also matches the script's own scope — it prints "Installing Xbox controller **Bluetooth** support…" and ends with "Now you can pair your Xbox controller with Bluetooth" — but the blacklist it writes is global.
### Steps to reproduce
1. Run Xbox controller install (menu → Install → Gaming → Xbox Controllers), or `omarchy-install-gaming-xbox-controllers`
2. Reboot (or `sudo modprobe -r xpad`)
3. Connect an Xbox controller over USB
4. `ls /dev/input/js*` — no node is created for the wired device; `jstest`/games see nothing
Removing `/etc/modprobe.d/blacklist-xpad.conf` and running `sudo modprobe xpad` restores wired support immediately, with Bluetooth via xpadneo continuing to work normally. Both then coexist:
```
js0 -> Xbox Wireless Controller (bluetooth, xpadneo)
js1 -> Microsoft Xbox Series S|X Controller (usb, xpad)
```
### Suggested fix
Drop these two lines from `omarchy-install-gaming-xbox-controllers`:
```bash
echo blacklist xpad | sudo tee /etc/modprobe.d/blacklist-xpad.conf >/dev/null
...
if lsmod | grep -q '^xpad '; then
sudo modprobe -r xpad 2>/dev/null || needs_reboot=true
fi
```
`/etc/modules-load.d/xpadneo.conf` and the `input` group handling are both fine and should stay. `omarchy-remove-gaming-xbox-controllers` already removes the blacklist file, so it would need its `rm` adjusted, though leaving it is harmless for existing installs.
One migration wrinkle: users who already ran the installer keep the file, since nothing removes it on update.
### System
| | |
|---|---|
| Omarchy | 4.0.0-1 |
| Kernel | 7.1.8-arch1-3 |
| CPU | AMD Ryzen 9 9900X |
| GPU | NVIDIA RTX 4080 / AMD Granite Ridge |
| xpadneo-dkms | 0.10.4-1 |
| Controller | Xbox Series S\|X, USB `045e:0b12` |
<sub>Note: `omarchy --help` advertises `omarchy debug` ("Print debugging information") but the command does not exist in 4.0.0-1 — `omarchy debug` returns "Unknown Omarchy command", so no debug log is attached. Possibly worth a separate issue.</sub>
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 04:17 UTC