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.
force-igpu resume hook strands system in Vfio mode on Integrated->Vfio transition failure; toggle can't recover
Reported by ujo4eva · filed Sep 15, 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
After switching to Integrated mode via Super+Ctrl+H > Hybrid GPU (omarchy-toggle-hybrid-gpu), the system intermittently gets stuck in Vfio mode after suspend/resume. Once stuck, the same menu entry fails with:
Hybrid GPU not found or in unknown mode.because bin/omarchy-toggle-hybrid-gpu only handles Integrated/Hybrid in its case statement and falls through to *) for Vfio.
Why it strands in Vfio
default/systemd/system-sleep/force-igpu post does Vfio -> Integrated on every resume while in Integrated mode. supergfxctl -m persists each step immediately, so if the second transition fails the config is left at "mode": "Vfio". The restore marker is in /run/ (tmpfs), so a reboot wipes the recovery state and the machine boots straight into Vfio with nothing to restore it.
Two failures on this machine, identical signature:
Sep 13 11:33:46 Switching gfx mode to Vfio / Graphics mode changed to Vfio
Sep 13 11:33:47 Switching gfx mode to Integrated / Graphics mode changed to Integrated
Sep 13 11:33:47 UnbindRemoveGpu: No such file or directory (os error 2)
Sep 13 11:33:48 rmmod nvidia_drm failed: "rmmod: ERROR: Module nvidia_drm is in use"
Sep 13 11:33:58 Could not confirm the GPU transition to Integrated mode
Sep 13 11:33:58 '/usr/lib/systemd/system-sleep/force-igpu' failed with exit status 1.
Sep 14 21:53:55 Switching gfx mode to Vfio / Graphics mode changed to Vfio
Sep 14 21:53:56 Switching gfx mode to Integrated / Graphics mode changed to Integrated
Sep 14 21:53:56 UnbindRemoveGpu: No such file or directory (os error 2)
Sep 14 21:53:57 rmmod nvidia_drm failed: "rmmod: ERROR: Module nvidia_drm is in use"
Sep 14 21:54:07 Could not confirm the GPU transition to Integrated modeThe same hook succeeded 8+ times in the prior week (Sep 9/10/13/14), so it is a race, not a deterministic failure. Likely contributors on this machine: quickshell (Omarchy 4 shell) holds /dev/nvidia0,nvidia-uvm,nvidia-modeset across resume, plus ollama.service (pid 1248 (ollama) is holding /dev/nvidia0. Killing in logs), plus nvidia 580.159.04 -> 580.178.04 / kernel 7.1.9 -> 7.2.3.
Expected
- A failed resume hook should never leave the persistent config stranded in the intermediate
Vfiostate (retry, revert config, or keep the marker so the next boot/post can recover). omarchy-toggle-hybrid-gpushould handleVfio(and other real modes likeDedicated/AsusMuxDgpu) instead ofHybrid GPU not found or in unknown mode— at minimum offer recovery back toHybrid/Integrated, since that is the only UI users get viaSuper+Ctrl+H.
Steps to reproduce
- On a dual-GPU laptop,
Super+Ctrl+H > Hybrid GPUto switchHybrid -> Integrated, reboot. - Suspend/resume repeatedly with something holding
nvidia_drm(e.g. a GPU app +ollama.serviceenabled). - Eventually
postfails as above;supergfxctl -greturnsVfio,/etc/supergfxd.confsays"mode": "Vfio". - After next reboot, still
Vfio;Super+Ctrl+H > Hybrid GPUprintsHybrid GPU not found or in unknown mode.and exits 1.
System details
- Omarchy:
4.0.3-1(channel package), upstream default branchquattro supergfxctl 5.2.7-2,supergfxd 5.2.7, kernel7.2.3-arch1-3nvidia-580xx-dkms/utils 580.178.04-1.1- CPU:
Intel i5-9300H, iGPUCoffeeLake-H GT2 [UHD 630] (00:02.0), dGPUNVIDIA GP107M [GTX 1050 3 GB Max-Q] (01:00.0, subsys HP 103c:85fa)— supported modes[Integrated, Hybrid, Vfio] force-igpu+delay-start.confinstalled by the toggle (expected for Integrated); hook source matches upstreamquattroas of filing.
Suggested fix directions
bin/omarchy-toggle-hybrid-gpu: add aVfio(and ideallyDedicated/MUX) arm that offers to return toHybrid/Integratedwith the same cleanup theIntegrated -> Hybridpath does (removeforce-igpu+delay-start.conf), instead of the*)dead-end.force-igpu: don't persist the intermediate state — e.g. onpostfailure, rewrite/etc/supergfxd.confback towardIntegratedand/or preserve the restore marker across reboot (not/run-only) so the next boot can retry; considerKillNvidia-style holder handling or a bounded retry before giving up.- Docs: note the hook is primarily for Asus G14-style mux behavior; non-Asus muxless laptops (like this HP) still get it installed unconditionally when entering Integrated mode.
Workaround (verified on this machine)
supergfxctl -m Hybrid
sudo rm -rf /usr/lib/systemd/system-sleep/force-igpu /etc/systemd/system/supergfxd.service.d/delay-start.conf
sudo systemctl daemon-reload
sudo reboot
# verify: supergfxctl -g -> HybridView raw text
## What happened After switching to Integrated mode via `Super+Ctrl+H > Hybrid GPU` (`omarchy-toggle-hybrid-gpu`), the system intermittently gets stuck in `Vfio` mode after suspend/resume. Once stuck, the same menu entry fails with: ``` Hybrid GPU not found or in unknown mode. ``` because `bin/omarchy-toggle-hybrid-gpu` only handles `Integrated`/`Hybrid` in its `case` statement and falls through to `*)` for `Vfio`. ## Why it strands in Vfio `default/systemd/system-sleep/force-igpu` `post` does `Vfio -> Integrated` on every resume while in Integrated mode. `supergfxctl -m` persists each step immediately, so if the second transition fails the config is left at `"mode": "Vfio"`. The restore marker is in `/run/` (tmpfs), so a reboot wipes the recovery state and the machine boots straight into `Vfio` with nothing to restore it. Two failures on this machine, identical signature: ``` Sep 13 11:33:46 Switching gfx mode to Vfio / Graphics mode changed to Vfio Sep 13 11:33:47 Switching gfx mode to Integrated / Graphics mode changed to Integrated Sep 13 11:33:47 UnbindRemoveGpu: No such file or directory (os error 2) Sep 13 11:33:48 rmmod nvidia_drm failed: "rmmod: ERROR: Module nvidia_drm is in use" Sep 13 11:33:58 Could not confirm the GPU transition to Integrated mode Sep 13 11:33:58 '/usr/lib/systemd/system-sleep/force-igpu' failed with exit status 1. Sep 14 21:53:55 Switching gfx mode to Vfio / Graphics mode changed to Vfio Sep 14 21:53:56 Switching gfx mode to Integrated / Graphics mode changed to Integrated Sep 14 21:53:56 UnbindRemoveGpu: No such file or directory (os error 2) Sep 14 21:53:57 rmmod nvidia_drm failed: "rmmod: ERROR: Module nvidia_drm is in use" Sep 14 21:54:07 Could not confirm the GPU transition to Integrated mode ``` The same hook succeeded 8+ times in the prior week (`Sep 9/10/13/14`), so it is a race, not a deterministic failure. Likely contributors on this machine: `quickshell` (Omarchy 4 shell) holds `/dev/nvidia0,nvidia-uvm,nvidia-modeset` across resume, plus `ollama.service` (`pid 1248 (ollama) is holding /dev/nvidia0. Killing` in logs), plus nvidia `580.159.04 -> 580.178.04` / kernel `7.1.9 -> 7.2.3`. ## Expected 1. A failed resume hook should never leave the persistent config stranded in the intermediate `Vfio` state (retry, revert config, or keep the marker so the next boot/post can recover). 2. `omarchy-toggle-hybrid-gpu` should handle `Vfio` (and other real modes like `Dedicated`/`AsusMuxDgpu`) instead of `Hybrid GPU not found or in unknown mode` — at minimum offer recovery back to `Hybrid`/`Integrated`, since that is the only UI users get via `Super+Ctrl+H`. ## Steps to reproduce 1. On a dual-GPU laptop, `Super+Ctrl+H > Hybrid GPU` to switch `Hybrid -> Integrated`, reboot. 2. Suspend/resume repeatedly with something holding `nvidia_drm` (e.g. a GPU app + `ollama.service` enabled). 3. Eventually `post` fails as above; `supergfxctl -g` returns `Vfio`, `/etc/supergfxd.conf` says `"mode": "Vfio"`. 4. After next reboot, still `Vfio`; `Super+Ctrl+H > Hybrid GPU` prints `Hybrid GPU not found or in unknown mode.` and exits 1. ## System details - Omarchy: `4.0.3-1` (channel package), upstream default branch `quattro` - `supergfxctl 5.2.7-2`, `supergfxd 5.2.7`, kernel `7.2.3-arch1-3` - `nvidia-580xx-dkms/utils 580.178.04-1.1` - CPU: `Intel i5-9300H`, iGPU `CoffeeLake-H GT2 [UHD 630] (00:02.0)`, dGPU `NVIDIA GP107M [GTX 1050 3 GB Max-Q] (01:00.0, subsys HP 103c:85fa)` — supported modes `[Integrated, Hybrid, Vfio]` - `force-igpu` + `delay-start.conf` installed by the toggle (expected for Integrated); hook source matches upstream `quattro` as of filing. ## Suggested fix directions - `bin/omarchy-toggle-hybrid-gpu`: add a `Vfio` (and ideally `Dedicated`/MUX) arm that offers to return to `Hybrid`/`Integrated` with the same cleanup the `Integrated -> Hybrid` path does (remove `force-igpu` + `delay-start.conf`), instead of the `*)` dead-end. - `force-igpu`: don't persist the intermediate state — e.g. on `post` failure, rewrite `/etc/supergfxd.conf` back toward `Integrated` and/or preserve the restore marker across reboot (not `/run`-only) so the next boot can retry; consider `KillNvidia`-style holder handling or a bounded retry before giving up. - Docs: note the hook is primarily for Asus G14-style mux behavior; non-Asus muxless laptops (like this HP) still get it installed unconditionally when entering Integrated mode. ## Workaround (verified on this machine) ```bash supergfxctl -m Hybrid sudo rm -rf /usr/lib/systemd/system-sleep/force-igpu /etc/systemd/system/supergfxd.service.d/delay-start.conf sudo systemctl daemon-reload sudo reboot # verify: supergfxctl -g -> Hybrid ```
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 13:32 UTC