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-[browser,webapp] are garbage
Reported by mxraw · filed Sep 7, 2025Closed upstream on 2025-09-07 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
Doesn't matter
What's wrong?
omarchy-launch-[browser,webapp] are garbage.
Here is a fix for launch-browser:
> cat omarchy-launch-browser
#!/bin/bash
exec setsid uwsm app -- xdg-open "${1:-about:blank}"Now launch-webapp is a bit more involved because xdg is also garbage (surprise). However, shamelessly reusing what /usr/bin/xdg-open provides allows us to alleviate the smell (somewhat):
> cat omarchy-launch-webapp
#!/bin/bash
#-------------------------------------------------------------
# map an id to a .desktop file, shamelessly stolen from xdg-open and slightly adapted
id_to_desktop_file() {
search="${XDG_DATA_HOME:-$HOME/.local/share}:${XDG_DATA_DIRS:-/usr/local/share:/usr/share}"
app_id="$1"
# Ensure .desktop extension for matching
case "$app_id" in
*.desktop) desktop_name="$app_id" ;;
*) desktop_name="$app_id.desktop" ;;
esac
IFS=:
for dir in $search; do
unset IFS
[ "$dir" ] || continue
[ -d "$dir/applications" ] || [ -d "$dir/applnk" ] || continue
for file in "$dir"/applications/*.desktop "$dir"/applications/*/*.desktop "$dir"/applnk/*.desktop "$dir"/applnk/*/*.desktop; do
[ -r "$file" ] || continue
# Check if filename matches the app ID
filename="$(basename "$file")"
if [ "$filename" = "$desktop_name" ]; then
# Make sure it's a visible desktop file
grep -Eq "^(NoDisplay|Hidden)=true" "$file" && continue
# Fix any double slashes that got added from path composition
echo "$file" | tr -s /
return
fi
done
done
}
browser=$(xdg-settings get default-web-browser)
file=$(id_to_desktop_file $browser)
smell='s/@@[^@]*@@//g; s/%[UuFfDdNnickvm]//g; s/ */ /g; s/ *$//'
command="$(grep -E "^Exec=" "$file" | head -n1 | cut -d= -f 2- | sed "$smell")"
exec setsid uwsm app -- $command --app="$1" "${@:2}"I hope this can be useful to someone.
View raw text
### System details
Doesn't matter
### What's wrong?
omarchy-launch-[browser,webapp] are garbage.
Here is a fix for launch-browser:
```
> cat omarchy-launch-browser
#!/bin/bash
exec setsid uwsm app -- xdg-open "${1:-about:blank}"
```
Now launch-webapp is a bit more involved because xdg is also garbage (surprise). However, shamelessly reusing what /usr/bin/xdg-open provides allows us to alleviate the smell (somewhat):
```
> cat omarchy-launch-webapp
#!/bin/bash
#-------------------------------------------------------------
# map an id to a .desktop file, shamelessly stolen from xdg-open and slightly adapted
id_to_desktop_file() {
search="${XDG_DATA_HOME:-$HOME/.local/share}:${XDG_DATA_DIRS:-/usr/local/share:/usr/share}"
app_id="$1"
# Ensure .desktop extension for matching
case "$app_id" in
*.desktop) desktop_name="$app_id" ;;
*) desktop_name="$app_id.desktop" ;;
esac
IFS=:
for dir in $search; do
unset IFS
[ "$dir" ] || continue
[ -d "$dir/applications" ] || [ -d "$dir/applnk" ] || continue
for file in "$dir"/applications/*.desktop "$dir"/applications/*/*.desktop "$dir"/applnk/*.desktop "$dir"/applnk/*/*.desktop; do
[ -r "$file" ] || continue
# Check if filename matches the app ID
filename="$(basename "$file")"
if [ "$filename" = "$desktop_name" ]; then
# Make sure it's a visible desktop file
grep -Eq "^(NoDisplay|Hidden)=true" "$file" && continue
# Fix any double slashes that got added from path composition
echo "$file" | tr -s /
return
fi
done
done
}
browser=$(xdg-settings get default-web-browser)
file=$(id_to_desktop_file $browser)
smell='s/@@[^@]*@@//g; s/%[UuFfDdNnickvm]//g; s/ */ /g; s/ *$//'
command="$(grep -E "^Exec=" "$file" | head -n1 | cut -d= -f 2- | sed "$smell")"
exec setsid uwsm app -- $command --app="$1" "${@:2}"
```
I hope this can be useful to someone.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.