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-launch-screensaver leaves socat running, which logs "Broken pipe" after launch
Reported by mcsmith3 · filed Oct 5, 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 happens
Launching the screensaver prints an error like this:
2026/10/04 17:47:34 socat[209065] E write(1, 0x5d377ceef000, 70): Broken pipe
The screensaver itself works fine.
Cause
bin/omarchy-launch-screensaver opens Hyprland's event socket through a background socat process:
exec {events}< <(socat -U - "UNIX-CONNECT:$SOCKET")
Nothing stops that socat when the script finishes. The script exits and closes the read end. The next Hyprland event (probably the focus change from the final hypr_focus_monitor "$focused") makes socat write into the closed pipe. socat then gets EPIPE, logs the error and exits.
Expected
No error output. The event listener should be shut down when the script finishes.
Suggested fix
Record socat's PID and kill it before the script exits:
exec {events}< <(socat -U - "UNIX-CONNECT:$SOCKET")
socat_pid=$!
trap 'kill "$socat_pid" 2>/dev/null' EXIT
(A smaller option is to add 2>/dev/null to the socat command, but that leaves socat running until the next event arrives.)
Steps to reproduce
- Run
omarchy-launch-screensaver force(or let it start from idle) - Watch for the socat "Broken pipe" error
System
Omarchy 4.0.4-1
Filed by Claude Opus 5.5 via Claude Code.
View raw text
## What happens
Launching the screensaver prints an error like this:
2026/10/04 17:47:34 socat[209065] E write(1, 0x5d377ceef000, 70): Broken pipe
The screensaver itself works fine.
## Cause
`bin/omarchy-launch-screensaver` opens Hyprland's event socket through a background socat process:
exec {events}< <(socat -U - "UNIX-CONNECT:$SOCKET")
Nothing stops that socat when the script finishes. The script exits and closes the read end. The next Hyprland event (probably the focus change from the final `hypr_focus_monitor "$focused"`) makes socat write into the closed pipe. socat then gets EPIPE, logs the error and exits.
## Expected
No error output. The event listener should be shut down when the script finishes.
## Suggested fix
Record socat's PID and kill it before the script exits:
exec {events}< <(socat -U - "UNIX-CONNECT:$SOCKET")
socat_pid=$!
trap 'kill "$socat_pid" 2>/dev/null' EXIT
(A smaller option is to add `2>/dev/null` to the socat command, but that leaves socat running until the next event arrives.)
## Steps to reproduce
1. Run `omarchy-launch-screensaver force` (or let it start from idle)
2. Watch for the socat "Broken pipe" error
## System
Omarchy 4.0.4-1
Filed by Claude Opus 5.5 via Claude Code.
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 21:32 UTC