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.
4.0.1: `shell_succeeds` fix enables NVDEC VAAPI routing on hybrid laptops with Intel-driven displays, corrupting browser video
Reported by SisyphusOfCorinth · filed Aug 25, 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 updating 4.0.0 → 4.0.1, Chromium glitches (corrupted/flickering frames) whenever video content scrolls into view — most visible on x.com's feed, where videos autoplay as they enter the viewport. Reverting nothing else, overriding LIBVA_DRIVER_NAME=iHD in user config makes playback clean again.
What I expected
A point update not to change which GPU decodes video. On a hybrid laptop whose display, compositor, and browser GL all run on the Intel iGPU, video decode should stay on the iGPU.
Root cause
default/hypr/nvidia.lua sets LIBVA_DRIVER_NAME=nvidia + NVD_BACKEND=direct whenever a GSP-era NVIDIA GPU is detected. Before 4.0.1 this detection silently never fired: o.shell_succeeds in default/hypr/helpers.lua used os.execute(), which can't read an exit status inside Hyprland because the compositor reaps its own children — 4.0.1's rewrite (io.popen + "OK" marker) documents that bug in its own comment.
So 4.0.1's helper fix flipped these machines onto NVDEC routing for the first time. On a hybrid laptop where Hyprland renders on the iGPU (Aquamarine registers only the Intel card; Chromium's GPU process is pinned to the Intel render node via --render-node-override), every decoded frame is then exported from the NVIDIA GPU and imported into an Intel Mesa GL context as a DMA-BUF. That cross-GPU direct-backend import is what renders corrupted (likely aggravated by Mesa 26.2's iris DMA-BUF import changes — 26.2.1's release notes fix several, evidently not all).
Verified on the affected machine:
systemctl --user show-environmentgainedLIBVA_DRIVER_NAME=nvidia/NVD_BACKEND=directexactly at the 4.0.1 update; under 4.0.0 (Aug 12–24) they were absent and video was clean.- Chromium's GPU process has
/usr/lib/dri/nvidia_drv_video.somapped while holding fds to BOTH render nodes (decode on the NVIDIA node, GL on the Intel node). nvidia.luaand theomarchy-hw-nvidia*detectors are byte-identical between 4.0.0 and 4.0.1; the only relevant change is theshell_succeedsrewrite inhelpers.lua.
Steps to reproduce
- Hybrid laptop: Intel iGPU driving the displays, GSP-era NVIDIA dGPU present,
libva-nvidia-driverinstalled (Omarchy installs it with the NVIDIA driver set). - Update to 4.0.1, relogin.
- Confirm
systemctl --user show-environment | grep LIBVA→nvidia. - In Chromium, scroll a feed with autoplaying videos (x.com). Video regions glitch/corrupt.
- Counter-test:
LIBVA_DRIVER_NAME=iHD chromium --user-data-dir=/tmp/vaapi-test— same content plays clean.
Workaround
User Lua override (loads after defaults, later env wins):
-- ~/.config/hypr/hyprland.lua
hl.env("LIBVA_DRIVER_NAME", "iHD")Suggested fix
In nvidia.lua, set LIBVA_DRIVER_NAME=nvidia only when the NVIDIA GPU is the primary/display DRM device (the GPU Hyprland renders on), not merely present. When the display runs on another vendor's GPU, leave LIBVA_DRIVER_NAME unset so libva matches the driver to the render node in use (iHD here) — that was the effective (and working) behavior of every 4.0.0 install, since the detection never ran.
System details
- Omarchy 4.0.1-1 (updated from 4.0.0-1 on 2026-08-25), kernel 7.1.9-arch1-2
- CPU: Intel i9-12900HK (Alder Lake); iGPU: Iris Xe (ADL-P GT2, i915) driving 3 external DP monitors; dGPU: RTX 3050 Ti Mobile, nvidia-open-dkms 610.57.04
- mesa 1:26.2.1-1, intel-media-driver 26.2.4-1, libva-nvidia-driver 0.0.17-1, libva 2.24.1-1
- Hyprland 0.56.2-1, chromium 151.0.7922.173-1 (unchanged across the regression window)
Debug log
omarchy-debug output (trimmed to relevant sections; hostname and disk identifiers masked)
# omarchy-debug output, trimmed to bug-relevant sections (full-log noise removed:
# unrelated hardware, network/firewall journal lines; hostname and disk identifiers masked)
Date: Tue Aug 25 10:05:15 AM EDT 2026
Omarchy Package: omarchy 4.0.1-1
=========================================
SYSTEM INFORMATION
=========================================
12System:
12Kernel 7.1.9-arch1-2 12arch x86_64 12bits 64 12compiler gcc 12v 16.2.1 12clocksource tsc 12avail acpi_pm
12Desktop Hyprland 12v 0.56.2 12vt 1 12dm SDDM 12Distro Omarchy
12Machine:
12Type Laptop 12System Dell 12product XPS 15 9520 12v N/A 12serial <superuser required> 12Chassis 12type 10
12CPU:
12Info 12model 12th Gen Intel Core i9-12900HK 12bits 64 12type MST AMCP 12arch Alder Lake 12gen core 12
12Graphics:
12Device-1 Intel Alder Lake-P GT2 [Iris Xe Graphics] 12vendor Dell 12driver i915 12v kernel 12alternate xe
12arch Xe 12process Intel 10nm 12built 2021-22+ 12ports 12active DP-5, DP-6, DP-7, eDP-1 12empty DP-1, DP-2,
DP-3, DP-4, HDMI-A-1 12bus-ID 00:02.0 12chip-ID 8086:46a6 12class-ID 0300
12Device-2 NVIDIA GA107M [GeForce RTX 3050 Ti Mobile] 12vendor Dell 12driver nvidia 12v 610.57.04
12alternate nouveau,nvidia_drm 12non-free 550-6xx.xx+ 12status current (as of 2026-07) 12arch Ampere
12code GAxxx 12process TSMC n7 (7nm) 12built 2020-2023 12pcie 12gen 4 12speed 16 GT/s 12lanes 8 12link-max
12lanes 16 12bus-ID 01:00.0 12chip-ID 10de:25a0 12class-ID 0302
12Device-3 Microdia Integrated_Webcam_HD 12driver uvcvideo 12type USB 12rev 2.0 12speed 480 Mb/s 12lanes 1
12mode 2.0 12bus-ID 3-6:5 12chip-ID 0c45:6732 12class-ID 0e02
12Display wayland 12server X.org 12v 1.21.1.24 12with Xwayland 12v 24.1.13 12compositor Hyprland 12v 0.56.2
12driver 12X 12loaded modesetting,nvidia 12alternate fbdev,intel,nouveau,nv,vesa 12dri iris 12gpu i915
12display-ID 1
12Monitor-1 DP-5 12model Asus PB278 12serial <filter> 12built 2018 12res 2560x1440 12dpi 109 12gamma 1.2
12size 597x336mm (23.5x13.23") 12diag 685mm (27") 12ratio 16:9 12modes 12max 2560x1440 12min 720x400
12Monitor-2 DP-6 12model Asus PB278 12serial <filter> 12built 2018 12res 2560x1440 12dpi 109 12gamma 1.2
12size 597x336mm (23.5x13.23") 12diag 685mm (27") 12ratio 16:9 12modes 12max 2560x1440 12min 720x400
12Monitor-3 DP-7 12model Asus PB278 12serial <filter> 12built 2018 12res 2560x1440 12dpi 109 12gamma 1.2
12size 597x336mm (23.5x13.23") 12diag 685mm (27") 12ratio 16:9 12modes 12max 2560x1440 12min 720x400
12Monitor-4 eDP-1 12model Samsung 0x414d 12built 2020 12res 3456x2160 12dpi 261 12gamma 1.2
12size 336x210mm (13.23x8.27") 12diag 396mm (15.6") 12ratio 16:10 12modes 3456x2160
12API EGL 12Message EGL data requires eglinfo. Check --recommends.
12Info 12Tools 12gpu nvidia-smi 12x11 xprop,xrandr
=========================================
JOURNALCTL (CURRENT BOOT, WARNINGS+ERRORS)
=========================================
Aug 25 09:07:11 <hostname> kernel: nvidia: loading out-of-tree module taints kernel.
Aug 25 09:07:11 <hostname> kernel: NVRM: loading NVIDIA UNIX Open Kernel Module for x86_64 610.57.04 Release Build (root@<hostname>)
Aug 25 09:07:11 <hostname> kernel: nvidia 0000:01:00.0: [drm] No compatible format found
=========================================
INSTALLED PACKAGES
=========================================
chromium 151.0.7922.173-1 (extra)
hyprland 0.56.2-1 (extra)
hyprland-guiutils 0.2.2-2 (extra)
intel-media-driver 26.2.4-1 (extra)
lib32-nvidia-utils 610.57.04-1 (multilib)
lib32-vulkan-intel 1:26.2.1-1 (multilib)
libva-nvidia-driver 0.0.17-1 (extra)
libva-utils 2.24.0-1 (extra)
linux 7.1.9.arch1-2 (core)
nvidia-open-dkms 610.57.04-1 (extra)
nvidia-utils 610.57.04-1 (extra)
omarchy 4.0.1-1 (omarchy)
omarchy-settings 4.0.1-1 (omarchy)
vulkan-intel 1:26.2.1-1 (extra)
xdg-desktop-portal-hyprland 1.4.1-1 (extra)
# Note: mesa 1:26.2.1-1 and lib32-mesa 1:26.2.1-1 are installed as dependencies
# (not in the explicit list above); confirmed via pacman -Q.View raw text
# What happened
After updating 4.0.0 → 4.0.1, Chromium glitches (corrupted/flickering frames) whenever video content scrolls into view — most visible on x.com's feed, where videos autoplay as they enter the viewport. Reverting nothing else, overriding `LIBVA_DRIVER_NAME=iHD` in user config makes playback clean again.
# What I expected
A point update not to change which GPU decodes video. On a hybrid laptop whose display, compositor, and browser GL all run on the Intel iGPU, video decode should stay on the iGPU.
# Root cause
`default/hypr/nvidia.lua` sets `LIBVA_DRIVER_NAME=nvidia` + `NVD_BACKEND=direct` whenever a GSP-era NVIDIA GPU is detected. Before 4.0.1 this detection silently never fired: `o.shell_succeeds` in `default/hypr/helpers.lua` used `os.execute()`, which can't read an exit status inside Hyprland because the compositor reaps its own children — 4.0.1's rewrite (`io.popen` + "OK" marker) documents that bug in its own comment.
So 4.0.1's helper fix flipped these machines onto NVDEC routing for the first time. On a hybrid laptop where Hyprland renders on the iGPU (Aquamarine registers only the Intel card; Chromium's GPU process is pinned to the Intel render node via `--render-node-override`), every decoded frame is then exported from the NVIDIA GPU and imported into an Intel Mesa GL context as a DMA-BUF. That cross-GPU direct-backend import is what renders corrupted (likely aggravated by Mesa 26.2's iris DMA-BUF import changes — 26.2.1's release notes fix several, evidently not all).
Verified on the affected machine:
- `systemctl --user show-environment` gained `LIBVA_DRIVER_NAME=nvidia` / `NVD_BACKEND=direct` exactly at the 4.0.1 update; under 4.0.0 (Aug 12–24) they were absent and video was clean.
- Chromium's GPU process has `/usr/lib/dri/nvidia_drv_video.so` mapped while holding fds to BOTH render nodes (decode on the NVIDIA node, GL on the Intel node).
- `nvidia.lua` and the `omarchy-hw-nvidia*` detectors are byte-identical between 4.0.0 and 4.0.1; the only relevant change is the `shell_succeeds` rewrite in `helpers.lua`.
# Steps to reproduce
1. Hybrid laptop: Intel iGPU driving the displays, GSP-era NVIDIA dGPU present, `libva-nvidia-driver` installed (Omarchy installs it with the NVIDIA driver set).
2. Update to 4.0.1, relogin.
3. Confirm `systemctl --user show-environment | grep LIBVA` → `nvidia`.
4. In Chromium, scroll a feed with autoplaying videos (x.com). Video regions glitch/corrupt.
5. Counter-test: `LIBVA_DRIVER_NAME=iHD chromium --user-data-dir=/tmp/vaapi-test` — same content plays clean.
# Workaround
User Lua override (loads after defaults, later `env` wins):
```lua
-- ~/.config/hypr/hyprland.lua
hl.env("LIBVA_DRIVER_NAME", "iHD")
```
# Suggested fix
In `nvidia.lua`, set `LIBVA_DRIVER_NAME=nvidia` only when the NVIDIA GPU is the primary/display DRM device (the GPU Hyprland renders on), not merely present. When the display runs on another vendor's GPU, leave `LIBVA_DRIVER_NAME` unset so libva matches the driver to the render node in use (`iHD` here) — that was the effective (and working) behavior of every 4.0.0 install, since the detection never ran.
# System details
- Omarchy 4.0.1-1 (updated from 4.0.0-1 on 2026-08-25), kernel 7.1.9-arch1-2
- CPU: Intel i9-12900HK (Alder Lake); iGPU: Iris Xe (ADL-P GT2, i915) driving 3 external DP monitors; dGPU: RTX 3050 Ti Mobile, nvidia-open-dkms 610.57.04
- mesa 1:26.2.1-1, intel-media-driver 26.2.4-1, libva-nvidia-driver 0.0.17-1, libva 2.24.1-1
- Hyprland 0.56.2-1, chromium 151.0.7922.173-1 (unchanged across the regression window)
# Debug log
<details><summary>omarchy-debug output (trimmed to relevant sections; hostname and disk identifiers masked)</summary>
```
# omarchy-debug output, trimmed to bug-relevant sections (full-log noise removed:
# unrelated hardware, network/firewall journal lines; hostname and disk identifiers masked)
Date: Tue Aug 25 10:05:15 AM EDT 2026
Omarchy Package: omarchy 4.0.1-1
=========================================
SYSTEM INFORMATION
=========================================
12System:
12Kernel 7.1.9-arch1-2 12arch x86_64 12bits 64 12compiler gcc 12v 16.2.1 12clocksource tsc 12avail acpi_pm
12Desktop Hyprland 12v 0.56.2 12vt 1 12dm SDDM 12Distro Omarchy
12Machine:
12Type Laptop 12System Dell 12product XPS 15 9520 12v N/A 12serial <superuser required> 12Chassis 12type 10
12CPU:
12Info 12model 12th Gen Intel Core i9-12900HK 12bits 64 12type MST AMCP 12arch Alder Lake 12gen core 12
12Graphics:
12Device-1 Intel Alder Lake-P GT2 [Iris Xe Graphics] 12vendor Dell 12driver i915 12v kernel 12alternate xe
12arch Xe 12process Intel 10nm 12built 2021-22+ 12ports 12active DP-5, DP-6, DP-7, eDP-1 12empty DP-1, DP-2,
DP-3, DP-4, HDMI-A-1 12bus-ID 00:02.0 12chip-ID 8086:46a6 12class-ID 0300
12Device-2 NVIDIA GA107M [GeForce RTX 3050 Ti Mobile] 12vendor Dell 12driver nvidia 12v 610.57.04
12alternate nouveau,nvidia_drm 12non-free 550-6xx.xx+ 12status current (as of 2026-07) 12arch Ampere
12code GAxxx 12process TSMC n7 (7nm) 12built 2020-2023 12pcie 12gen 4 12speed 16 GT/s 12lanes 8 12link-max
12lanes 16 12bus-ID 01:00.0 12chip-ID 10de:25a0 12class-ID 0302
12Device-3 Microdia Integrated_Webcam_HD 12driver uvcvideo 12type USB 12rev 2.0 12speed 480 Mb/s 12lanes 1
12mode 2.0 12bus-ID 3-6:5 12chip-ID 0c45:6732 12class-ID 0e02
12Display wayland 12server X.org 12v 1.21.1.24 12with Xwayland 12v 24.1.13 12compositor Hyprland 12v 0.56.2
12driver 12X 12loaded modesetting,nvidia 12alternate fbdev,intel,nouveau,nv,vesa 12dri iris 12gpu i915
12display-ID 1
12Monitor-1 DP-5 12model Asus PB278 12serial <filter> 12built 2018 12res 2560x1440 12dpi 109 12gamma 1.2
12size 597x336mm (23.5x13.23") 12diag 685mm (27") 12ratio 16:9 12modes 12max 2560x1440 12min 720x400
12Monitor-2 DP-6 12model Asus PB278 12serial <filter> 12built 2018 12res 2560x1440 12dpi 109 12gamma 1.2
12size 597x336mm (23.5x13.23") 12diag 685mm (27") 12ratio 16:9 12modes 12max 2560x1440 12min 720x400
12Monitor-3 DP-7 12model Asus PB278 12serial <filter> 12built 2018 12res 2560x1440 12dpi 109 12gamma 1.2
12size 597x336mm (23.5x13.23") 12diag 685mm (27") 12ratio 16:9 12modes 12max 2560x1440 12min 720x400
12Monitor-4 eDP-1 12model Samsung 0x414d 12built 2020 12res 3456x2160 12dpi 261 12gamma 1.2
12size 336x210mm (13.23x8.27") 12diag 396mm (15.6") 12ratio 16:10 12modes 3456x2160
12API EGL 12Message EGL data requires eglinfo. Check --recommends.
12Info 12Tools 12gpu nvidia-smi 12x11 xprop,xrandr
=========================================
JOURNALCTL (CURRENT BOOT, WARNINGS+ERRORS)
=========================================
Aug 25 09:07:11 <hostname> kernel: nvidia: loading out-of-tree module taints kernel.
Aug 25 09:07:11 <hostname> kernel: NVRM: loading NVIDIA UNIX Open Kernel Module for x86_64 610.57.04 Release Build (root@<hostname>)
Aug 25 09:07:11 <hostname> kernel: nvidia 0000:01:00.0: [drm] No compatible format found
=========================================
INSTALLED PACKAGES
=========================================
chromium 151.0.7922.173-1 (extra)
hyprland 0.56.2-1 (extra)
hyprland-guiutils 0.2.2-2 (extra)
intel-media-driver 26.2.4-1 (extra)
lib32-nvidia-utils 610.57.04-1 (multilib)
lib32-vulkan-intel 1:26.2.1-1 (multilib)
libva-nvidia-driver 0.0.17-1 (extra)
libva-utils 2.24.0-1 (extra)
linux 7.1.9.arch1-2 (core)
nvidia-open-dkms 610.57.04-1 (extra)
nvidia-utils 610.57.04-1 (extra)
omarchy 4.0.1-1 (omarchy)
omarchy-settings 4.0.1-1 (omarchy)
vulkan-intel 1:26.2.1-1 (extra)
xdg-desktop-portal-hyprland 1.4.1-1 (extra)
# Note: mesa 1:26.2.1-1 and lib32-mesa 1:26.2.1-1 are installed as dependencies
# (not in the explicit list above); confirmed via pacman -Q.
```
</details>
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 08:45 UTC