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

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

In the audited area (menu) — decided by agents · verified. Not validated yet.

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?
AreaIn the audited areamenu· 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?
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

omarchy-menu-file returns 0 files when ~/Pictures/~/Videos are symlinks (transcode panel never opens)revision 1 · captured 2026-09-28 21:23 UTC via poll

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

/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.

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.