Proof Portal

Project overview

Omarchy

ProbeLabs65 findings · 95 requirements

A 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.

Inbox
ReportR-1472GitHub issuePublicFixed

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

Decided: Out of scope — decided by agents · verified 3 days ago.

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

4.0.1: `shell_succeeds` fix enables NVDEC VAAPI routing on hybrid laptops with Intel-driven displays, corrupting browser videorevision 1 · captured 2026-09-28 21:24 UTC via poll

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):

-- ~/.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