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-429GitHub issuePublicDecided· Out of scope

omarchy-system-logout closes windows but never actually logs out

Reported by jenseralmeida · filed Sep 17, 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

omarchy-system-logout closes windows but never actually logs outrevision 1 · captured 2026-09-28 21:23 UTC via poll

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

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