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

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

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 shell (quickshell) accumulates per-instance log dirs in /run/user/1000 until tmpfs is full, breaking all app launchesrevision 1 · captured 2026-09-28 21:23 UTC via poll

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

# 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