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.
Launching… OSD toast can get stuck on screen indefinitely
Reported by Alcariss · filed Sep 22, 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
The app-launch feedback toast (e.g. "Launching Files…") stayed on screen indefinitely instead of auto-dismissing, even though the launched app (Nautilus) started successfully in the background and its window opened normally.
Root cause
In /usr/share/omarchy/shell/services/AppLibrary.qml, beginLaunchFeedback() restarts both the launchDelay (2s) and launchTimeout (15s safety-net) timers on every invocation:
function beginLaunchFeedback(name) {
root.launchSerial++
root.launchToplevelCount = root.toplevelCount()
root.launchActiveToplevel = ToplevelManager.activeToplevel
root.launchOsdMessage = "Launching " + String(name || "application") + "…"
launchDelay.restart()
launchTimeout.restart()
}If the launcher is triggered again (e.g. the user, unsure whether the first press registered, presses the Files keybinding/menu item a second time) before the toast has resolved, launchTimeout.restart() pushes the 15s safety-net back out each time. The toast can then persist far longer than 15s — in my case it was stuck until manually cleared, well after the app's window had already opened.
Expected behavior
The safety-net timeout should still fire (or the feedback should resolve) even when the launcher is retriggered, so the toast can't outlive its own timeout window indefinitely.
Steps to reproduce
- Trigger an app launch that shows the launch feedback toast (e.g.
omarchy launch nautilus, or Super+E / the Files entry in the app menu). - Before the toast resolves, trigger the same launch again (or a couple more times in quick succession).
- Observe the "Launching …" toast can remain stuck on screen well past the intended 15s timeout, even after the app's window has opened.
Workaround
omarchy-shell osd close manually dismisses the stuck toast.
System details
- Omarchy version: 4.0.4-1
omarchy debugis not available as a command in this version (omarchy commands --allhas no debug entry), so no diagnostic log is attached.
View raw text
## What happened
The app-launch feedback toast (e.g. "Launching Files…") stayed on screen indefinitely instead of auto-dismissing, even though the launched app (Nautilus) started successfully in the background and its window opened normally.
## Root cause
In `/usr/share/omarchy/shell/services/AppLibrary.qml`, `beginLaunchFeedback()` restarts both the `launchDelay` (2s) and `launchTimeout` (15s safety-net) timers on every invocation:
```qml
function beginLaunchFeedback(name) {
root.launchSerial++
root.launchToplevelCount = root.toplevelCount()
root.launchActiveToplevel = ToplevelManager.activeToplevel
root.launchOsdMessage = "Launching " + String(name || "application") + "…"
launchDelay.restart()
launchTimeout.restart()
}
```
If the launcher is triggered again (e.g. the user, unsure whether the first press registered, presses the Files keybinding/menu item a second time) before the toast has resolved, `launchTimeout.restart()` pushes the 15s safety-net back out each time. The toast can then persist far longer than 15s — in my case it was stuck until manually cleared, well after the app's window had already opened.
## Expected behavior
The safety-net timeout should still fire (or the feedback should resolve) even when the launcher is retriggered, so the toast can't outlive its own timeout window indefinitely.
## Steps to reproduce
1. Trigger an app launch that shows the launch feedback toast (e.g. `omarchy launch nautilus`, or Super+E / the Files entry in the app menu).
2. Before the toast resolves, trigger the same launch again (or a couple more times in quick succession).
3. Observe the "Launching …" toast can remain stuck on screen well past the intended 15s timeout, even after the app's window has opened.
## Workaround
`omarchy-shell osd close` manually dismisses the stuck toast.
## System details
- Omarchy version: 4.0.4-1
- `omarchy debug` is not available as a command in this version (`omarchy commands --all` has no debug entry), so no diagnostic log is attached.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 17:22 UTC