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-voxtype-status script orphans child processes due to missing SIGTERM trap
Reported by dmitrylito · filed Jun 6, 2026Closed upstream on 2026-06-16 by dhh. GitHub close reason: completed. No closing PR or commit is recorded — "completed" alone is not evidence of a fix.
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?
- Not yet mapped to any requirement or component.
- 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?
- Our staff decide whether the report is valid. Where this project allows it, agents decide whether it duplicates another report or a known issue. No decision has been recorded yet.
Original report
System details
AMD 9850, Nvidia RTX 5080
What's wrong?
Bug Report: omarchy-voxtype-status Orphans Child Processes on Waybar Reloads
Description
The omarchy-voxtype-status script fails to clean up its child processes when terminated by a system signal, such as when Waybar reloads. This causes orphaned voxtype status --follow processes to accumulate in the background over time, unnecessarily cluttering the process tree and consuming system resources.
Root Cause
The script uses a trap to kill its child processes when it exits:
# File: ~/.local/share/omarchy/bin/omarchy-voxtype-status (Line 5)
trap 'kill 0' EXITHowever, in Bash, trapping EXIT only executes the cleanup command during a normal script termination. When Waybar reloads (or when the process is killed externally), it sends a SIGTERM signal to the script. Because the script does not explicitly trap SIGTERM, Bash terminates immediately without executing the kill 0 trap. This leaves the voxtype status --follow command running endlessly in the background.
Steps to Reproduce
- Start Waybar with the
voxtypemodule enabled. - Trigger a Waybar reload (e.g., via
omarchy restart waybaror saving a Waybar config file). - Run
pgrep -a -f "voxtype status"and observe that the oldvoxtype status --followprocesses are still running. - Repeat the reload multiple times to see the processes multiply.
Proposed Fix
Update the trap command to explicitly catch termination and interrupt signals in addition to EXIT.
Modify line 5 in omarchy-voxtype-status from:
trap 'kill 0' EXITto:
trap 'kill 0' EXIT SIGTERM SIGINTThis ensures the trap fires correctly regardless of how the script is stopped, properly terminating the child voxtype polling process.
View raw text
### System details AMD 9850, Nvidia RTX 5080 ### What's wrong? # Bug Report: `omarchy-voxtype-status` Orphans Child Processes on Waybar Reloads ## Description The `omarchy-voxtype-status` script fails to clean up its child processes when terminated by a system signal, such as when Waybar reloads. This causes orphaned `voxtype status --follow` processes to accumulate in the background over time, unnecessarily cluttering the process tree and consuming system resources. ## Root Cause The script uses a `trap` to kill its child processes when it exits: ```bash # File: ~/.local/share/omarchy/bin/omarchy-voxtype-status (Line 5) trap 'kill 0' EXIT ``` However, in Bash, trapping `EXIT` only executes the cleanup command during a normal script termination. When Waybar reloads (or when the process is killed externally), it sends a `SIGTERM` signal to the script. Because the script does not explicitly trap `SIGTERM`, Bash terminates immediately without executing the `kill 0` trap. This leaves the `voxtype status --follow` command running endlessly in the background. ## Steps to Reproduce 1. Start Waybar with the `voxtype` module enabled. 2. Trigger a Waybar reload (e.g., via `omarchy restart waybar` or saving a Waybar config file). 3. Run `pgrep -a -f "voxtype status"` and observe that the old `voxtype status --follow` processes are still running. 4. Repeat the reload multiple times to see the processes multiply. ## Proposed Fix Update the trap command to explicitly catch termination and interrupt signals in addition to `EXIT`. Modify line 5 in `omarchy-voxtype-status` from: ```bash trap 'kill 0' EXIT ``` to: ```bash trap 'kill 0' EXIT SIGTERM SIGINT ``` This ensures the trap fires correctly regardless of how the script is stopped, properly terminating the child `voxtype` polling process.
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.
No decision has been recorded yet.