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.
nvidia.lua forces LIBVA_DRIVER_NAME=nvidia on hybrid laptops where the iGPU drives the displays, breaking browser video (repro of #11168 on Arrow Lake + Blackwell)
Reported by kimm-stensborg · filed Sep 10, 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
Intel Core Ultra 7 255H (Arrow Lake, Arc 130T/140T iGPU) + NVIDIA RTX PRO 500 Blackwell Laptop GPU, Omarchy 4.0.3-1
What's wrong?
Second independent reproduction of #11168 (closed by its author, not by a maintainer, and with no fix merged), this time on different hardware: an Arrow Lake iGPU with a Blackwell dGPU, and three displays.
default/hypr/nvidia.lua sets LIBVA_DRIVER_NAME=nvidia (plus NVD_BACKEND=direct and __GLX_VENDOR_LIBRARY_NAME=nvidia) whenever omarchy-hw-nvidia and omarchy-hw-nvidia-gsp succeed. It does not check whether NVIDIA is the GPU that actually renders or drives the displays. On this hybrid laptop NVIDIA drives neither, so browsers decode video on NVDEC while compositing on the Intel iGPU, and video playback breaks. Turning off hardware acceleration in the browser fixes it, which matches the cross-GPU dmabuf import failure described in #11168.
Every display is on the Intel iGPU:
card0-eDP-1: connected -> i915 (AU Optronics B160UAN04.9)
card0-DP-5: connected -> i915 (Lenovo T27QD-40)
card0-DP-7: connected -> i915 (Lenovo T27QD-40)Hyprland renders on the Intel node:
/dev/dri/by-path/pci-0000:00:02.0-render -> renderD129 (Intel, i915)
/dev/dri/by-path/pci-0000:01:00.0-render -> renderD128 (NVIDIA)
Hyprland fds: card0 x6, renderD129 x6, renderD128 x1Chrome follows the compositor onto the Intel node:
/opt/google/chrome/chrome --type=gpu-process --ozone-platform=wayland --render-node-override=/dev/dri/renderD129 ...But the session environment forces the NVIDIA VA-API driver:
LIBVA_DRIVER_NAME=nvidia
NVD_BACKEND=direct
__GLX_VENDOR_LIBRARY_NAME=nvidiaThe Intel VA-API driver works fine on the node the browser actually uses:
$ LIBVA_DRIVER_NAME=iHD vainfo --display drm --device /dev/dri/renderD129
vainfo: Driver version: Intel iHD driver for Intel(R) Gen Graphics - 26.2.4 ()
VAProfileH264High : VAEntrypointVLD
VAProfileHEVCMain10 : VAEntrypointVLD
VAProfileVP9Profile0: VAEntrypointVLD
...omarchy-hw-hybrid-gpu correctly returns true on this machine, but nvidia.lua never consults it or anything like it.
Steps to reproduce
- Hybrid Intel + NVIDIA (GSP) laptop, with the displays wired to the Intel iGPU.
- Log in to a stock Omarchy session.
nvidia.luaexportsLIBVA_DRIVER_NAME=nvidia. - Play a video in Chrome, Chromium or Brave with hardware acceleration on. Playback is broken.
- Turn hardware acceleration off. Playback works.
Suggested fix
As in #11168: export LIBVA_DRIVER_NAME=nvidia only when NVIDIA is the compositor's render device, not merely present. Checking which GPU drives the connected displays (or AQ_DRM_DEVICES when set) would cover it. Alternatively, leave LIBVA_DRIVER_NAME unset on hybrid systems; libva already picks the right driver per render node. __GLX_VENDOR_LIBRARY_NAME=nvidia comes from the same branch and probably deserves the same condition.
Workaround
In ~/.config/hypr/hyprland.lua, after require("default.hypr.omarchy"):
hl.env("LIBVA_DRIVER_NAME", "iHD")
hl.env("__GLX_VENDOR_LIBRARY_NAME", "mesa")Versions
- Omarchy 4.0.3-1, Hyprland 0.56.2 (
efb5099), kernel 7.2.3-arch1-3 - GPUs: Intel Arrow Lake-P Arc 130T/140T (
8086:7d51, i915) + NVIDIA RTX PRO 500 Blackwell Laptop (10de:2db9, nvidia-open-dkms 610.57.04) - google-chrome / chromium 152.0.7977.82-1, brave-bin 1.94.121-1
- mesa 1:26.2.2-1, libva 2.24.1-1, libva-nvidia-driver 0.0.18-1, intel-media-driver 26.2.4-1
View raw text
### System details
Intel Core Ultra 7 255H (Arrow Lake, Arc 130T/140T iGPU) + NVIDIA RTX PRO 500 Blackwell Laptop GPU, Omarchy 4.0.3-1
### What's wrong?
Second independent reproduction of #11168 (closed by its author, not by a maintainer, and with no fix merged), this time on different hardware: an Arrow Lake iGPU with a Blackwell dGPU, and three displays.
`default/hypr/nvidia.lua` sets `LIBVA_DRIVER_NAME=nvidia` (plus `NVD_BACKEND=direct` and `__GLX_VENDOR_LIBRARY_NAME=nvidia`) whenever `omarchy-hw-nvidia` and `omarchy-hw-nvidia-gsp` succeed. It does not check whether NVIDIA is the GPU that actually renders or drives the displays. On this hybrid laptop NVIDIA drives neither, so browsers decode video on NVDEC while compositing on the Intel iGPU, and video playback breaks. Turning off hardware acceleration in the browser fixes it, which matches the cross-GPU dmabuf import failure described in #11168.
**Every display is on the Intel iGPU:**
```
card0-eDP-1: connected -> i915 (AU Optronics B160UAN04.9)
card0-DP-5: connected -> i915 (Lenovo T27QD-40)
card0-DP-7: connected -> i915 (Lenovo T27QD-40)
```
**Hyprland renders on the Intel node:**
```
/dev/dri/by-path/pci-0000:00:02.0-render -> renderD129 (Intel, i915)
/dev/dri/by-path/pci-0000:01:00.0-render -> renderD128 (NVIDIA)
Hyprland fds: card0 x6, renderD129 x6, renderD128 x1
```
**Chrome follows the compositor onto the Intel node:**
```
/opt/google/chrome/chrome --type=gpu-process --ozone-platform=wayland --render-node-override=/dev/dri/renderD129 ...
```
**But the session environment forces the NVIDIA VA-API driver:**
```
LIBVA_DRIVER_NAME=nvidia
NVD_BACKEND=direct
__GLX_VENDOR_LIBRARY_NAME=nvidia
```
**The Intel VA-API driver works fine on the node the browser actually uses:**
```
$ LIBVA_DRIVER_NAME=iHD vainfo --display drm --device /dev/dri/renderD129
vainfo: Driver version: Intel iHD driver for Intel(R) Gen Graphics - 26.2.4 ()
VAProfileH264High : VAEntrypointVLD
VAProfileHEVCMain10 : VAEntrypointVLD
VAProfileVP9Profile0: VAEntrypointVLD
...
```
`omarchy-hw-hybrid-gpu` correctly returns true on this machine, but `nvidia.lua` never consults it or anything like it.
#### Steps to reproduce
1. Hybrid Intel + NVIDIA (GSP) laptop, with the displays wired to the Intel iGPU.
2. Log in to a stock Omarchy session. `nvidia.lua` exports `LIBVA_DRIVER_NAME=nvidia`.
3. Play a video in Chrome, Chromium or Brave with hardware acceleration on. Playback is broken.
4. Turn hardware acceleration off. Playback works.
#### Suggested fix
As in #11168: export `LIBVA_DRIVER_NAME=nvidia` only when NVIDIA is the compositor's render device, not merely present. Checking which GPU drives the connected displays (or `AQ_DRM_DEVICES` when set) would cover it. Alternatively, leave `LIBVA_DRIVER_NAME` unset on hybrid systems; libva already picks the right driver per render node. `__GLX_VENDOR_LIBRARY_NAME=nvidia` comes from the same branch and probably deserves the same condition.
#### Workaround
In `~/.config/hypr/hyprland.lua`, after `require("default.hypr.omarchy")`:
```lua
hl.env("LIBVA_DRIVER_NAME", "iHD")
hl.env("__GLX_VENDOR_LIBRARY_NAME", "mesa")
```
#### Versions
- Omarchy 4.0.3-1, Hyprland 0.56.2 (`efb5099`), kernel 7.2.3-arch1-3
- GPUs: Intel Arrow Lake-P Arc 130T/140T (`8086:7d51`, i915) + NVIDIA RTX PRO 500 Blackwell Laptop (`10de:2db9`, nvidia-open-dkms 610.57.04)
- google-chrome / chromium 152.0.7977.82-1, brave-bin 1.94.121-1
- mesa 1:26.2.2-1, libva 2.24.1-1, libva-nvidia-driver 0.0.18-1, intel-media-driver 26.2.4-1
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
- Fixed bypr/9483· confirmed
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 11:28 UTC