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.
omarchy-usb-autosuspend.conf never applies: usbcore is built into the kernel, so autosuspend stays at the default
Reported by paracycle · filed Aug 24, 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
System details
Framework Laptop 13 (AMD Ryzen AI 9 HX 370), Omarchy 4.0.0-1, kernel 7.1.8-arch1-3.
What's wrong?
etc/modprobe.d/omarchy-usb-autosuspend.conf ships options usbcore autosuspend=-1, but it never takes effect: usbcore is built into the Arch kernel, not a module, so modprobe options for it are ignored.
$ cat /etc/modprobe.d/omarchy-usb-autosuspend.conf
options usbcore autosuspend=-1
$ cat /sys/module/usbcore/initstate
built-in
$ grep -c usbcore /proc/modules
0
$ cat /sys/module/usbcore/parameters/autosuspend
2The effective value is the kernel default of 2 seconds, i.e. USB autosuspend is on for every device that permits it — the opposite of what the drop-in intends. Hub-level state on this machine, with the drop-in installed:
$ for d in 13-1 14-1; do echo "$d: $(cat /sys/bus/usb/devices/$d/power/control)"; done
13-1: auto
14-1: autoWhy it matters
I found this while diagnosing a docked laptop whose keyboard and mouse vanish for ~45 s after resume (#7328 is the related display half). The dock's USB tree enumerates at resume, drops entirely nine seconds later, and returns almost a minute after that:
01:27:29 PM: suspend exit + xhci_hcd 0000:07:00.0: xHC error in resume, USBSTS 0x401, Reinit
01:27:30 usb 13-1 / 14-1: dock hub tree enumerates
01:27:39 usb 13-1: USB disconnect (whole tree goes)
01:28:22 usb 13-1: re-enumerates, input devices returnAutosuspend being live is not necessarily the whole story for a flap like that, but the setting Omarchy believes it has applied is exactly the one that would keep dock hubs from being suspended in the first place, and right now it applies to nothing.
Suggested fix
Move it to the kernel cmdline, where usbcore parameters do work — etc/limine-entry-tool.d/omarchy-defaults.conf already carries this kind of default:
KERNEL_CMDLINE[default]+=" usbcore.autosuspend=-1"Verified on this machine: with usbcore.autosuspend=-1 on the cmdline, /sys/module/usbcore/parameters/autosuspend reads -1.
Two things for a maintainer to decide, which is why this is an issue and not a PR: whether disabling USB autosuspend globally is still the intent (it costs idle power on laptops), and whether the now-dead modprobe.d drop-in should be dropped or kept for the case where a kernel builds usbcore as a module. Happy to send the patch either way.
View raw text
### System details Framework Laptop 13 (AMD Ryzen AI 9 HX 370), Omarchy 4.0.0-1, kernel 7.1.8-arch1-3. ### What's wrong? `etc/modprobe.d/omarchy-usb-autosuspend.conf` ships `options usbcore autosuspend=-1`, but it never takes effect: `usbcore` is built into the Arch kernel, not a module, so modprobe options for it are ignored. ```console $ cat /etc/modprobe.d/omarchy-usb-autosuspend.conf options usbcore autosuspend=-1 $ cat /sys/module/usbcore/initstate built-in $ grep -c usbcore /proc/modules 0 $ cat /sys/module/usbcore/parameters/autosuspend 2 ``` The effective value is the kernel default of 2 seconds, i.e. USB autosuspend is on for every device that permits it — the opposite of what the drop-in intends. Hub-level state on this machine, with the drop-in installed: ```console $ for d in 13-1 14-1; do echo "$d: $(cat /sys/bus/usb/devices/$d/power/control)"; done 13-1: auto 14-1: auto ``` ### Why it matters I found this while diagnosing a docked laptop whose keyboard and mouse vanish for ~45 s after resume (#7328 is the related display half). The dock's USB tree enumerates at resume, drops entirely nine seconds later, and returns almost a minute after that: ``` 01:27:29 PM: suspend exit + xhci_hcd 0000:07:00.0: xHC error in resume, USBSTS 0x401, Reinit 01:27:30 usb 13-1 / 14-1: dock hub tree enumerates 01:27:39 usb 13-1: USB disconnect (whole tree goes) 01:28:22 usb 13-1: re-enumerates, input devices return ``` Autosuspend being live is not necessarily the whole story for a flap like that, but the setting Omarchy believes it has applied is exactly the one that would keep dock hubs from being suspended in the first place, and right now it applies to nothing. ### Suggested fix Move it to the kernel cmdline, where `usbcore` parameters do work — `etc/limine-entry-tool.d/omarchy-defaults.conf` already carries this kind of default: ``` KERNEL_CMDLINE[default]+=" usbcore.autosuspend=-1" ``` Verified on this machine: with `usbcore.autosuspend=-1` on the cmdline, `/sys/module/usbcore/parameters/autosuspend` reads `-1`. Two things for a maintainer to decide, which is why this is an issue and not a PR: whether disabling USB autosuspend globally is still the intent (it costs idle power on laptops), and whether the now-dead `modprobe.d` drop-in should be dropped or kept for the case where a kernel builds `usbcore` as a module. Happy to send the patch either way.
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 08:38 UTC