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.
Nautilus space-preview never plays video on NVIDIA (gtkglsink EGL_BAD_CONTEXT); GDK_GL=gles fixes it
Reported by danielgccr · filed Aug 28, 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 i7-14700KF, NVIDIA GeForce RTX 5060 Ti (GB206), nvidia-utils 610.57.04-1, Omarchy 4.0.1-1, Hyprland 0.56.2-1, Linux 7.1.8-arch1-3, sushi 50.0-1, gtk3 1:3.24.52-1, gst-plugin-gtk 1.28.6-2, gst-plugins-base 1.28.6-2
What's wrong?
On NVIDIA, pressing space on a video in Nautilus opens the Sushi preview window but no video ever plays. Image previews work fine; video is the broken case.
The GStreamer pipeline never prerolls because gtkglsink cannot create a GL context shared with GTK3's:
gstglcontext.c:1330:gst_gl_context_create_thread:<glcontextegl0> Failed to create context
gtkgstglwidget.c:688:gtk_gst_gl_widget_init_winsys: Could not create OpenGL context: Failed to create a OpenGL context: EGL_BAD_CONTEXT
gstgtkglsink.c:270:gst_gtk_gl_sink_start:<gtkglsink0> error: Failed to initialize OpenGL with Gtk
ERROR: pipeline doesn't want to preroll.SushiMediaBin does have a fallback path to the software gtksink, but it only triggers when gtkglsink fails to construct or reports a software rasterizer. Here gtkglsink constructs fine and only fails later in gst_gtk_gl_sink_start(), when the pipeline goes to PAUSED, so the fallback is never reached and the preview stays blank.
This is not the missing-codecs case in #8475 — gst-libav and gst-plugins-bad are installed here, and the same file decodes and plays fine through the very same pipeline once the GL context problem is removed (see below).
Steps to reproduce
On an NVIDIA machine:
- Open Nautilus, select any video file, press space.
- The preview window opens with the correct title and toolbar, but the video area stays black and never plays.
Minimal reproduction without Nautilus, using the same sink Sushi uses:
# fails: EGL_BAD_CONTEXT / Failed to initialize OpenGL with Gtk
gst-launch-1.0 playbin uri=file:///path/to/video.mp4 video-sink="glsinkbin sink=gtkglsink"
# works: video plays
GDK_GL=gles gst-launch-1.0 playbin uri=file:///path/to/video.mp4 video-sink="glsinkbin sink=gtkglsink"Expected behavior
Space-preview plays videos on NVIDIA, as it does on Intel/AMD.
Cause and suggested fix
GTK3 on Wayland gives NVIDIA a desktop-GL EGL context that gst-gl cannot share, so the shared-context creation returns EGL_BAD_CONTEXT. Forcing GTK3 to a GLES context fixes it. GDK_GL=gles is the one-line fix and would fit alongside the existing NVIDIA env vars in default/hypr/nvidia.lua:
hl.env("GDK_GL", "gles")Working around it per-user today with a D-Bus service override, verified on this machine — the previewer now plays video and the OpenGL error is gone from the journal:
# ~/.local/share/dbus-1/services/org.gnome.NautilusPreviewer.service
[D-BUS Service]
Name=org.gnome.NautilusPreviewer
Exec=/usr/bin/env GDK_GL=gles /usr/lib/org.gnome.NautilusPreviewerHappy to send a PR against default/hypr/nvidia.lua if that is the preferred place for it.
View raw text
### System details
Intel Core i7-14700KF, NVIDIA GeForce RTX 5060 Ti (GB206), nvidia-utils 610.57.04-1, Omarchy 4.0.1-1, Hyprland 0.56.2-1, Linux 7.1.8-arch1-3, sushi 50.0-1, gtk3 1:3.24.52-1, gst-plugin-gtk 1.28.6-2, gst-plugins-base 1.28.6-2
### What's wrong?
On NVIDIA, pressing space on a video in Nautilus opens the Sushi preview window but no video ever plays. Image previews work fine; video is the broken case.
The GStreamer pipeline never prerolls because `gtkglsink` cannot create a GL context shared with GTK3's:
```text
gstglcontext.c:1330:gst_gl_context_create_thread:<glcontextegl0> Failed to create context
gtkgstglwidget.c:688:gtk_gst_gl_widget_init_winsys: Could not create OpenGL context: Failed to create a OpenGL context: EGL_BAD_CONTEXT
gstgtkglsink.c:270:gst_gtk_gl_sink_start:<gtkglsink0> error: Failed to initialize OpenGL with Gtk
ERROR: pipeline doesn't want to preroll.
```
`SushiMediaBin` does have a fallback path to the software `gtksink`, but it only triggers when `gtkglsink` fails to *construct* or reports a software rasterizer. Here `gtkglsink` constructs fine and only fails later in `gst_gtk_gl_sink_start()`, when the pipeline goes to `PAUSED`, so the fallback is never reached and the preview stays blank.
This is not the missing-codecs case in #8475 — `gst-libav` and `gst-plugins-bad` are installed here, and the same file decodes and plays fine through the very same pipeline once the GL context problem is removed (see below).
### Steps to reproduce
On an NVIDIA machine:
1. Open Nautilus, select any video file, press space.
2. The preview window opens with the correct title and toolbar, but the video area stays black and never plays.
Minimal reproduction without Nautilus, using the same sink Sushi uses:
```bash
# fails: EGL_BAD_CONTEXT / Failed to initialize OpenGL with Gtk
gst-launch-1.0 playbin uri=file:///path/to/video.mp4 video-sink="glsinkbin sink=gtkglsink"
# works: video plays
GDK_GL=gles gst-launch-1.0 playbin uri=file:///path/to/video.mp4 video-sink="glsinkbin sink=gtkglsink"
```
### Expected behavior
Space-preview plays videos on NVIDIA, as it does on Intel/AMD.
### Cause and suggested fix
GTK3 on Wayland gives NVIDIA a desktop-GL EGL context that gst-gl cannot share, so the shared-context creation returns `EGL_BAD_CONTEXT`. Forcing GTK3 to a GLES context fixes it. `GDK_GL=gles` is the one-line fix and would fit alongside the existing NVIDIA env vars in `default/hypr/nvidia.lua`:
```lua
hl.env("GDK_GL", "gles")
```
Working around it per-user today with a D-Bus service override, verified on this machine — the previewer now plays video and the OpenGL error is gone from the journal:
```ini
# ~/.local/share/dbus-1/services/org.gnome.NautilusPreviewer.service
[D-BUS Service]
Name=org.gnome.NautilusPreviewer
Exec=/usr/bin/env GDK_GL=gles /usr/lib/org.gnome.NautilusPreviewer
```
Happy to send a PR against `default/hypr/nvidia.lua` if that is the preferred place for it.
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 09:48 UTC