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-636GitHub issuePublicFixed

Screen recording: stopping twice posts two "saved" toasts and a broken thumbnail

Reported by ahmadtv · filed Sep 12, 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

Screen recording: stopping twice posts two "saved" toasts and a broken thumbnailrevision 1 · captured 2026-09-28 21:23 UTC via poll

System details

Omarchy 4.0.3 (current quattro has the same stop_screenrecording), gpu-screen-recorder 6.1.0, iMac18,3 with a Radeon Pro 575.

What's wrong?

When gpu-screen-recorder takes a moment to exit after SIGINT (a slower encoder draining its queue: 2–3 s at 4K on this Radeon), a second stop runs stop_screenrecording again while the first is still waiting. That happens when you press Alt+Print again, or pick "Stop Screenrecording", because nothing seemed to happen:

  • Both calls read /tmp/omarchy-screenrecord-filename before either removes it, so both run finalize_recording and both post "Screen recording saved" for the same file. Their cleanups race over <name>-preview.png, and the toast shows Qt's broken-image placeholder (magenta and black squares); the shell log has Could not load icon ".../screenrecording-…-preview.png".
  • If the second stop starts after the first has removed that file, it reads an empty name, and the toast's image is -preview.png (shell log: Could not load icon "-preview.png").
  • If the drain takes longer than the 5 s wait, the second call force-kills the recorder ("Recording process had to be force-killed").

To reproduce (the drain only has to take a moment):

omarchy-capture-screenrecording --fullscreen --resolution=3840x2160
sleep 5
omarchy-capture-screenrecording --stop-recording & sleep 0.4; omarchy-capture-screenrecording --stop-recording

Two "Screen recording saved" toasts appear for one file, one with a broken thumbnail.

A possible fix: make stopping single-flight, for example exec 9>/tmp/omarchy-screenrecord.lock; flock -n 9 || return 0 at the top of stop_screenrecording, and skip the finalize and notification when the recording file name is empty.

View raw text
### System details

Omarchy 4.0.3 (current `quattro` has the same `stop_screenrecording`), gpu-screen-recorder 6.1.0, iMac18,3 with a Radeon Pro 575.

### What's wrong?

When gpu-screen-recorder takes a moment to exit after SIGINT (a slower encoder draining its queue: 2–3 s at 4K on this Radeon), a second stop runs `stop_screenrecording` again while the first is still waiting. That happens when you press Alt+Print again, or pick "Stop Screenrecording", because nothing seemed to happen:

- Both calls read `/tmp/omarchy-screenrecord-filename` before either removes it, so both run `finalize_recording` and both post "Screen recording saved" for the same file. Their cleanups race over `<name>-preview.png`, and the toast shows Qt's broken-image placeholder (magenta and black squares); the shell log has `Could not load icon ".../screenrecording-…-preview.png"`.
- If the second stop starts after the first has removed that file, it reads an empty name, and the toast's image is `-preview.png` (shell log: `Could not load icon "-preview.png"`).
- If the drain takes longer than the 5 s wait, the second call force-kills the recorder ("Recording process had to be force-killed").

To reproduce (the drain only has to take a moment):

```sh
omarchy-capture-screenrecording --fullscreen --resolution=3840x2160
sleep 5
omarchy-capture-screenrecording --stop-recording & sleep 0.4; omarchy-capture-screenrecording --stop-recording
```

Two "Screen recording saved" toasts appear for one file, one with a broken thumbnail.

A possible fix: make stopping single-flight, for example `exec 9>/tmp/omarchy-screenrecord.lock; flock -n 9 || return 0` at the top of `stop_screenrecording`, and skip the finalize and notification when the recording file name is empty.

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

  • Fixed bypr/10397· confirmed

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 12:19 UTC