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.
omarchy-system-logout closes windows but never actually logs out
Reported by jenseralmeida · filed Sep 17, 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
Triggering Logout (menu > System > Logout) shows the "Logging out" OSD toast and closes all open windows, but the session never actually ends — Hyprland/uwsm stays up and the user is left at an empty desktop.
Expected behavior
The compositor/session should stop (equivalent to running uwsm stop) after windows are closed.
Root cause
omarchy-system-logout schedules the actual stop as a backgrounded job behind a 2s sleep, but the script itself (and the process scope it runs in) exits well before that:
nohup bash -c "sleep 2 && uwsm stop" >/dev/null 2>&1 &
omarchy-osd -i logout -m "Logging out" -d 5000
# Now close all windows
omarchy-hyprland-window-close-all
sleep 1 # Allow apps like Chrome to shutdown correctlyThe script finishes (sleep 1 returns) about 1 second before the backgrounded sleep 2 && uwsm stop job would fire. Depending on how the invoking process's scope/cgroup is reaped, that backgrounded job gets killed before uwsm stop ever runs — nohup only protects against SIGHUP, not against the parent scope tearing down its cgroup.
Running uwsm stop directly/interactively works fine, confirming the stop mechanism itself is not the problem — it's the backgrounding race.
Suggested fix
Run the steps synchronously instead of backgrounding the stop, e.g.:
omarchy-osd -i logout -m "Logging out" -d 5000
omarchy-hyprland-window-close-all
sleep 1 # Allow apps like Chrome to shutdown correctly
uwsm stopSteps to reproduce
- Open the Omarchy menu -> System -> Logout (or
omarchy system logout) - Observe: "Logging out" toast appears, open windows close
- Observe: session never actually stops
System details
- Omarchy version: 4.0.4-1
- uwsm version: 0.26.7
- Compositor: Hyprland, launched via
uwsm start -g -1 -e -D Hyprland hyprland.desktop(sddm autologin)
View raw text
## What happened Triggering Logout (menu > System > Logout) shows the "Logging out" OSD toast and closes all open windows, but the session never actually ends — Hyprland/uwsm stays up and the user is left at an empty desktop. ## Expected behavior The compositor/session should stop (equivalent to running `uwsm stop`) after windows are closed. ## Root cause `omarchy-system-logout` schedules the actual stop as a backgrounded job behind a 2s sleep, but the script itself (and the process scope it runs in) exits well before that: ```bash nohup bash -c "sleep 2 && uwsm stop" >/dev/null 2>&1 & omarchy-osd -i logout -m "Logging out" -d 5000 # Now close all windows omarchy-hyprland-window-close-all sleep 1 # Allow apps like Chrome to shutdown correctly ``` The script finishes (`sleep 1` returns) about 1 second before the backgrounded `sleep 2 && uwsm stop` job would fire. Depending on how the invoking process's scope/cgroup is reaped, that backgrounded job gets killed before `uwsm stop` ever runs — `nohup` only protects against SIGHUP, not against the parent scope tearing down its cgroup. Running `uwsm stop` directly/interactively works fine, confirming the stop mechanism itself is not the problem — it's the backgrounding race. ## Suggested fix Run the steps synchronously instead of backgrounding the stop, e.g.: ```bash omarchy-osd -i logout -m "Logging out" -d 5000 omarchy-hyprland-window-close-all sleep 1 # Allow apps like Chrome to shutdown correctly uwsm stop ``` ## Steps to reproduce 1. Open the Omarchy menu -> System -> Logout (or `omarchy system logout`) 2. Observe: "Logging out" toast appears, open windows close 3. Observe: session never actually stops ## System details - Omarchy version: 4.0.4-1 - uwsm version: 0.26.7 - Compositor: Hyprland, launched via `uwsm start -g -1 -e -D Hyprland hyprland.desktop` (sddm autologin)
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 14:43 UTC