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 shell (quickshell) accumulates per-instance log dirs in /run/user/1000 until tmpfs is full, breaking all app launches
Reported by powerk1977 · filed Sep 26, 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
After ~3 weeks of uptime, every application launch (terminals via omarchy-launch-terminal, and anything else going through uwsm-app) failed with a cryptic Invalid arguments: error toast.
Root cause: /run/user/1000 (752M tmpfs) was at 100%. The systemd user manager could no longer create transient scope units, so every app launch failed. Even plain systemd-run --user --scope failed with Failed to start transient scope unit: Unit ... not found.
The space was consumed by /run/user/1000/quickshell/by-id/: the Omarchy shell (quickshell) creates a log directory per shell instance and never prunes old ones. On this system there were 77 stale instance dirs dating back weeks, including a single 463MB `log.log` and an 18MB log.qslog in one dead instance. Total quickshell usage: ~704M of the 752M tmpfs.
Deleting the stale by-id dirs (keeping the live instance) immediately restored app launching.
Expected
Old quickshell instance log dirs under /run/user/1000/quickshell/by-id/ (and their by-pid symlinks) should be pruned automatically — e.g. on shell startup, or capped/rotated so a few MB of logs can't fill the runtime tmpfs and break the session.
Steps to reproduce
- Use Omarchy normally for a few weeks; restart the shell occasionally (
omarchy restart shell, crashes, etc.). Each instance leaves a log dir in/run/user/1000/quickshell/by-id/. - Observe
du -sh /run/user/1000/quickshellgrowing without bound anddf -h /run/user/1000approaching 100%. - Once full, every app launch (uwsm-app / xdg-terminal-exec path) fails with
Invalid arguments:, and the journal showsxkbcomp ... Cannot close "/run/user/1000/server-0.xkm" properly (not enough space?).
Cleanup that fixed it
# keep only the live instance dir (resolve via /run/user/1000/quickshell/by-pid/<live-pid>)
cd /run/user/1000/quickshell/by-id
rm -rf <all-dirs-except-live>
rm -f /run/user/1000/quickshell/by-pid/*System details
- Omarchy: 4.0.2-1
- Kernel: 7.1.9-arch1-2 (Arch, current as of 2026-09-25)
- Quickshell: 0.3.1 (Arch package)
- CPU: Intel Core i5-10210U; GPU: Intel UHD Graphics (CometLake-U)
- Session: Hyprland via uwsm (sddm autologin), user manager up since Sep 5
Notes
- The live shell instance's own log had already reached 62MB (
log.log) within a few days, so growth is not just from stale instances — some log rotation/cap would help there too. - Symptom is very hard to connect to the cause from the user side ("Invalid arguments" gives no hint); a warning notification when /run/user usage crosses a threshold would also help.
View raw text
## What happened
After ~3 weeks of uptime, every application launch (terminals via `omarchy-launch-terminal`, and anything else going through `uwsm-app`) failed with a cryptic `Invalid arguments: ` error toast.
Root cause: `/run/user/1000` (752M tmpfs) was at **100%**. The systemd user manager could no longer create transient scope units, so every app launch failed. Even plain `systemd-run --user --scope` failed with `Failed to start transient scope unit: Unit ... not found`.
The space was consumed by `/run/user/1000/quickshell/by-id/`: the Omarchy shell (quickshell) creates a log directory per shell instance and never prunes old ones. On this system there were **77 stale instance dirs** dating back weeks, including a single **463MB `log.log`** and an 18MB `log.qslog` in one dead instance. Total quickshell usage: ~704M of the 752M tmpfs.
Deleting the stale `by-id` dirs (keeping the live instance) immediately restored app launching.
## Expected
Old quickshell instance log dirs under `/run/user/1000/quickshell/by-id/` (and their `by-pid` symlinks) should be pruned automatically — e.g. on shell startup, or capped/rotated so a few MB of logs can't fill the runtime tmpfs and break the session.
## Steps to reproduce
1. Use Omarchy normally for a few weeks; restart the shell occasionally (`omarchy restart shell`, crashes, etc.). Each instance leaves a log dir in `/run/user/1000/quickshell/by-id/`.
2. Observe `du -sh /run/user/1000/quickshell` growing without bound and `df -h /run/user/1000` approaching 100%.
3. Once full, every app launch (uwsm-app / xdg-terminal-exec path) fails with `Invalid arguments: `, and the journal shows `xkbcomp ... Cannot close "/run/user/1000/server-0.xkm" properly (not enough space?)`.
## Cleanup that fixed it
```bash
# keep only the live instance dir (resolve via /run/user/1000/quickshell/by-pid/<live-pid>)
cd /run/user/1000/quickshell/by-id
rm -rf <all-dirs-except-live>
rm -f /run/user/1000/quickshell/by-pid/*
```
## System details
- Omarchy: 4.0.2-1
- Kernel: 7.1.9-arch1-2 (Arch, current as of 2026-09-25)
- Quickshell: 0.3.1 (Arch package)
- CPU: Intel Core i5-10210U; GPU: Intel UHD Graphics (CometLake-U)
- Session: Hyprland via uwsm (sddm autologin), user manager up since Sep 5
## Notes
- The live shell instance's own log had already reached 62MB (`log.log`) within a few days, so growth is not just from stale instances — some log rotation/cap would help there too.
- Symptom is very hard to connect to the cause from the user side ("Invalid arguments" gives no hint); a warning notification when /run/user usage crosses a threshold would also help.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 19:47 UTC