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-menu-file returns 0 files when ~/Pictures/~/Videos are symlinks (transcode panel never opens)
Reported by LucasHSantana · filed Sep 20, 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?
- 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. So far: in the audited area (menu) — decided by agents · verified; matches no known issue — decided by agents · verified. The outcome (valid, duplicate, not a bug, …) is not decided yet. See the decision.
Original report
System details
Intel Core i7-9700KF, GeForce RTX 2070, Omarchy 4.0.4-1 stable
What's wrong?
On systems where ~/Videos is a symlink (e.g. ~/Videos -> /mnt/storage/Videos), omarchy transcode never opens the file picker.
The same happens if ~/Pictures is a symlink.
Steps to Reproduce
> ls -l ~/Videos lrwxrwxrwx ... Videos -> /mnt/storage/Videos
> > omarchy transcode or trigger.transcode from menu
Expected: picker with recent jpg/png/webp/mp4/webm
Actual: no panel
Isolated:
> find "$HOME/Pictures" "$HOME/Videos" -type f -iname "*.webm" | wc -l0
> find -L "$HOME/Pictures" "$HOME/Videos" -type f -iname "*.webm" | wc -l
1541
Root Cause
/bin/omarchy-menu-file:47
>find "${find_args[@]}" 2>/dev/null | sort -rn | cut -f2- |
omarchy-menu-select ...
find without -L does not descend into starting points that are symlinks to directories. With set -euo pipefail, the pipeline returns 0 files and omarchy-menu-select receives empty stdin (Usage, exit 1). For large libraries (1541 files here) the payload also exceeds MAX_ARG_STRLEN 128KB.
Proposed Fix
/bin/omarchy-menu-file
---
-find "${find_args[@]}" 2>/dev/null | sort -rn | cut -f2- |
- omarchy-menu-select "$label" -- --width 800 --maxheight 500 "$@"
+# -L follows symlinked ~/Pictures/~/Videos, head caps payload to avoid E2BIG
+# pipefail: head SIGPIPE makes sort/find exit 141, so return omarchy-menu-select status
+set +o pipefail
+find -L "${find_args[@]}" 2>/dev/null | sort -rn | cut -f2- | head -n 500 | omarchy-menu-select "$label" -- --width 800 --maxheight 500 "$@"
+status=${PIPESTATUS[4]:-$?}
+set -o pipefail
+exit $statusVerified: 0 -> 500 files (most recent via sort -rn by %T@), transcode now opens 3 panels (file -> format -> resolution) and completes.
View raw text
### System details
Intel Core i7-9700KF, GeForce RTX 2070, Omarchy 4.0.4-1 stable
### What's wrong?
On systems where `~/Videos` is a symlink (e.g. `~/Videos -> /mnt/storage/Videos`), `omarchy transcode` never opens the file picker.
The same happens if `~/Pictures` is a symlink.
## Steps to Reproduce
> `> ls -l ~/Videos`
lrwxrwxrwx ... Videos -> /mnt/storage/Videos
> `> omarchy transcode` *or trigger.transcode from menu*
**Expected:** picker with recent jpg/png/webp/mp4/webm
**Actual:** no panel
### Isolated:
> `> find "$HOME/Pictures" "$HOME/Videos" -type f -iname "*.webm" | wc -l`
0
> `find -L "$HOME/Pictures" "$HOME/Videos" -type f -iname "*.webm" | wc -l`
1541
## Root Cause
`/bin/omarchy-menu-file:47`
>find "${find_args[@]}" 2>/dev/null | sort -rn | cut -f2- |
omarchy-menu-select ...
`find` without `-L` does not descend into starting points that are symlinks to directories. With `set -euo pipefail`, the pipeline returns 0 files and `omarchy-menu-select` receives **empty stdin** (Usage, exit 1). For large libraries (1541 files here) the payload also exceeds `MAX_ARG_STRLEN 128KB`.
### Proposed Fix
```diff
/bin/omarchy-menu-file
---
-find "${find_args[@]}" 2>/dev/null | sort -rn | cut -f2- |
- omarchy-menu-select "$label" -- --width 800 --maxheight 500 "$@"
+# -L follows symlinked ~/Pictures/~/Videos, head caps payload to avoid E2BIG
+# pipefail: head SIGPIPE makes sort/find exit 141, so return omarchy-menu-select status
+set +o pipefail
+find -L "${find_args[@]}" 2>/dev/null | sort -rn | cut -f2- | head -n 500 | omarchy-menu-select "$label" -- --width 800 --maxheight 500 "$@"
+status=${PIPESTATUS[4]:-$?}
+set -o pipefail
+exit $status
```
Verified: 0 -> 500 files (most recent via sort -rn by %T@), transcode now opens 3 panels (file -> format -> resolution) and completes.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/12669· confirmed
- Fixed bypr/13018· confirmed
- Related PRpr/14538· confirmed
- Related PRpr/13197· confirmed
- Related PRpr/7320· 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.
- Decided by agents · verified: in the audited area (menu)
- Decided by agents · verified: matches no known issue
The outcome (valid, duplicate, not a bug, …) is not decided yet.