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-216GitHub issuePublicFixed

omarchy-menu-keybindings: embedded lua runs the Hyprland config and balloons to ~18GB, OOM-kills, and takes Hyprland down (NVIDIA teardown SIGSEGV)

Reported by luke-andrade7 · filed Sep 21, 2026 · open at source

Partly in the audited area (menu) — decided by agents · verified. Not validated yet.

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?
AreaPartly in the audited areamenu· 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?
Our staff decide whether the report is valid. Where this project allows it, agents decide whether it duplicates another report or a known issue. So far: partly in the audited area (menu) — decided by agents · verified. The outcome (valid, duplicate, not a bug, …) is not decided yet. See the decision.

Original report

omarchy-menu-keybindings: embedded lua runs the Hyprland config and balloons to ~18GB, OOM-kills, and takes Hyprland down (NVIDIA teardown SIGSEGV)revision 1 · captured 2026-09-28 21:23 UTC via poll

System details

ntel(R) Core(TM) i5-10300H (8) @ 4.50 GHz GeForce GTX 1650 Mobile / Max-Q Omarchy 4.0.4-

What's wrong?

Summary

SUPER + K (bound to omarchy-menu-keybindings) can crash the whole
Hyprland session. On a keybindings cache miss the script spawns a bare
lua process that dofiles the user's full Hyprland Lua config
(build_lua_bind_cache in /usr/share/omarchy/bin/omarchy-menu-keybindings,
lua → pcall(dofile, $HOME/.config/hypr/hyprland.lua) with a fake hl
env). That process balloons to ~18 GB virtual / ~9–11 GB RSS, exhausts RAM
and swap (free swap = 0 kB), triggers the kernel OOM killer, and Hyprland
then segfaults a second later while tearing down the NVIDIA EGL context.

The script also hangs: repeated presses leave bash stuck in
anon_pipe_read and 0-byte ~/.cache/omarchy/keybindings.* temp files, so
the menu never displays.

Environment

  • Omarchy 4.0.4-1
  • Hyprland 0.56.2-2, aquamarine 0.15.0-2 (fresh install, 2026-09-19)
  • nvidia-utils 610.57.04-1, GeForce GTX 1650 + Intel UHD (hybrid, NVIDIA renderer)
  • kernel 7.2.5-3-omarchy

Evidence (kernel logs)

omarchy-menu-keybindings was confirmed the parent (pstree: omarchy-menu-ke → lua).

Sep 21 19:53:12 kernel: Purging GPU memory, 0 pages freed, ... (NVIDIA)
Sep 21 19:53:12 kernel: Out of memory: Killed process 527984 (lua) total-vm:18123744kB, anon-rss:11599112kB
Sep 21 19:53:13 Hyprland SIGSEGV (coredump: 7.1M)
Sep 21 19:59:20 kernel: Out of memory: Killed process 539894 (lua) total-vm:16985112kB, anon-rss:9069984kB
Sep 21 19:59:21 Hyprland SIGSEGV (coredump: 4.7M)
Sep 21 20:11:26 kernel: lua: page allocation failure ... PID 558030 (during a --print run)

Both Hyprland cores are identical: main thread in exit() → dtor chain
CBackend → CDRMBackend → CDRMRenderer → eglDestroyContext →
SEGV_MAPERR in libc. At each crash the kernel recorded Free swap = 0kB.

Reproduction

Press SUPER + K with o.bind("SUPER + K", "Keybindings", "omarchy-menu-keybindings").
Trigger is intermittent: on a cache hit it finishes; on a cache miss (the
cache key includes the active keymap, so it changes when the focused keymap
changes) the embedded lua runs the full config and can run away.

Expected

The keybindings menu opens quickly; no compositor crash.

Workaround applied locally

Rebound SUPER + K to hyprctl binds | less to stay safe until fixed.

Notes

  • I could not reproduce the runaway in isolation outside the session env;

the exact runaway site inside the lua/config path is not yet pinned.
The OOM-killed process is provably the menu's lua child.
- The resulting Hyprland segfault in eglDestroyContext/NVIDIA teardown
looks like a separate upstream Hyprland/driver-on-shutdown bug.

Filed by big-pickle via opencode.

View raw text
### System details

ntel(R) Core(TM) i5-10300H (8) @ 4.50 GHz GeForce GTX 1650 Mobile / Max-Q Omarchy 4.0.4-

### What's wrong?

## Summary

`SUPER + K` (bound to `omarchy-menu-keybindings`) can crash the whole
Hyprland session. On a keybindings cache miss the script spawns a bare
`lua` process that `dofile`s the user's full Hyprland Lua config
(`build_lua_bind_cache` in `/usr/share/omarchy/bin/omarchy-menu-keybindings`,
`lua` → `pcall(dofile, $HOME/.config/hypr/hyprland.lua)` with a fake `hl`
env). That process balloons to ~18 GB virtual / ~9–11 GB RSS, exhausts RAM
and swap (free swap = 0 kB), triggers the kernel OOM killer, and Hyprland
then segfaults a second later while tearing down the NVIDIA EGL context.

The script also hangs: repeated presses leave bash stuck in
`anon_pipe_read` and 0-byte `~/.cache/omarchy/keybindings.*` temp files, so
the menu never displays.

## Environment

- Omarchy 4.0.4-1
- Hyprland 0.56.2-2, aquamarine 0.15.0-2 (fresh install, 2026-09-19)
- nvidia-utils 610.57.04-1, GeForce GTX 1650 + Intel UHD (hybrid, NVIDIA renderer)
- kernel 7.2.5-3-omarchy

## Evidence (kernel logs)

`omarchy-menu-keybindings` was confirmed the parent (pstree: `omarchy-menu-ke → lua`).

Sep 21 19:53:12 kernel: Purging GPU memory, 0 pages freed, ... (NVIDIA)
Sep 21 19:53:12 kernel: Out of memory: Killed process 527984 (lua) total-vm:18123744kB, anon-rss:11599112kB
Sep 21 19:53:13 Hyprland SIGSEGV (coredump: 7.1M)
Sep 21 19:59:20 kernel: Out of memory: Killed process 539894 (lua) total-vm:16985112kB, anon-rss:9069984kB
Sep 21 19:59:21 Hyprland SIGSEGV (coredump: 4.7M)
Sep 21 20:11:26 kernel: lua: page allocation failure ... PID 558030 (during a --print run)

Both Hyprland cores are identical: main thread in `exit()` → dtor chain
`CBackend` → `CDRMBackend` → `CDRMRenderer` → `eglDestroyContext` →
SEGV_MAPERR in libc. At each crash the kernel recorded `Free swap = 0kB`.

## Reproduction

Press `SUPER + K` with `o.bind("SUPER + K", "Keybindings", "omarchy-menu-keybindings")`.
Trigger is intermittent: on a cache hit it finishes; on a cache miss (the
cache key includes the active keymap, so it changes when the focused keymap
changes) the embedded `lua` runs the full config and can run away.

## Expected

The keybindings menu opens quickly; no compositor crash.

## Workaround applied locally

Rebound `SUPER + K` to `hyprctl binds | less` to stay safe until fixed.

## Notes

- I could not reproduce the runaway in isolation outside the session env;
  the exact runaway site inside the lua/config path is not yet pinned.
  The OOM-killed process is provably the menu's `lua` child.
- The resulting Hyprland segfault in `eglDestroyContext`/NVIDIA teardown
  looks like a separate upstream Hyprland/driver-on-shutdown bug.

Filed by big-pickle via opencode.

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

  • Related PRpr/14128· confirmed
  • Related PRpr/12712· confirmed
  • Fixed bypr/12916· confirmed
  • Related PRpr/7564· confirmed
  • Related PRpr/13276· confirmed
  • Fixed bypr/11733· 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.

  • Decided by agents · verified: partly in the audited area (menu)

The outcome (valid, duplicate, not a bug, …) is not decided yet.