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-1589GitHub issuePublicDecided· Out of scope

omarchy-provision-user recreates default XDG folders even when user has already customized user-dirs.dirs

Reported by gallagherman · filed Aug 22, 2026 · open at source

Decided: Out of scope — decided by agents · verified 4 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

omarchy-provision-user recreates default XDG folders even when user has already customized user-dirs.dirsrevision 1 · captured 2026-09-28 21:24 UTC via poll

System details

12th Gen Intel(R) Core(TM) i7-1260P, Iris Xe Graphics, Omarchy 4.0.0 (Quattro), upgraded from Omarchy 3.x

What's wrong?

omarchy-provision-user unconditionally runs:

mkdir -p ~/Downloads ~/Pictures ~/Videos ~/.config/gtk-3.0
xdg-user-dirs-update --set TEMPLATES "$HOME"
xdg-user-dirs-update --set PUBLICSHARE "$HOME"
xdg-user-dirs-update --set DESKTOP "$HOME"
rmdir ~/Templates ~/Public ~/Desktop 2>/dev/null || true
touch ~/.config/gtk-3.0/bookmarks
for dir in Downloads Projects Pictures Videos; do
  bookmark="file://$HOME/$dir $dir"
  grep -qxF "$bookmark" ~/.config/gtk-3.0/bookmarks || echo "$bookmark" >>~/.config/gtk-3.0/bookmarks
done

This creates ~/Downloads, ~/Pictures, and ~/Videos using default names, regardless of what's already configured in ~/.config/user-dirs.dirs. It doesn't check whether the user has already pointed those XDG dirs somewhere else — any custom location, name, or structure — before creating new, duplicate, default-named directories.

Reproduction steps

  1. On Omarchy 3.x, customize one or more XDG user dirs to a location other than Omarchy's default (renamed, moved, merged with another folder, etc.) and update ~/.config/user-dirs.dirs accordingly (e.g. XDG_PICTURES_DIR="$HOME/some-custom-path").
  2. Confirm user-dirs.dirs correctly reflects the custom paths and everything resolves correctly (xdg-user-dir PICTURES returns the custom path).
  3. Update to Omarchy 4.0.
  4. Observe that ~/Pictures, ~/Downloads, ~/Videos (Omarchy's defaults) now exist again as empty duplicate folders alongside the custom ones the user was actually using — despite user-dirs.dirs never having been reverted.

Expected behavior

If an XDG user dir is already set in user-dirs.dirs and the target directory exists, omarchy-provision-user should leave it alone rather than creating a second, default-named directory alongside it.

Suggested fix

Check for existing, valid XDG dirs before creating the default directories. If they exist use these for the gtk-3.0 bookmarks.

View raw text
### System details

12th Gen Intel(R) Core(TM) i7-1260P, Iris Xe Graphics, Omarchy 4.0.0 (Quattro), upgraded from Omarchy 3.x

### What's wrong?

`omarchy-provision-user` unconditionally runs:

```bash
mkdir -p ~/Downloads ~/Pictures ~/Videos ~/.config/gtk-3.0
xdg-user-dirs-update --set TEMPLATES "$HOME"
xdg-user-dirs-update --set PUBLICSHARE "$HOME"
xdg-user-dirs-update --set DESKTOP "$HOME"
rmdir ~/Templates ~/Public ~/Desktop 2>/dev/null || true
touch ~/.config/gtk-3.0/bookmarks
for dir in Downloads Projects Pictures Videos; do
  bookmark="file://$HOME/$dir $dir"
  grep -qxF "$bookmark" ~/.config/gtk-3.0/bookmarks || echo "$bookmark" >>~/.config/gtk-3.0/bookmarks
done
```

This creates `~/Downloads`, `~/Pictures`, and `~/Videos` using default names, regardless of what's already configured in `~/.config/user-dirs.dirs`. It doesn't check whether the user has already pointed those XDG dirs somewhere else — any custom location, name, or structure — before creating new, duplicate, default-named directories.

## Reproduction steps

1. On Omarchy 3.x, customize one or more XDG user dirs to a location other than Omarchy's default (renamed, moved, merged with another folder, etc.) and update `~/.config/user-dirs.dirs` accordingly (e.g. `XDG_PICTURES_DIR="$HOME/some-custom-path"`).
2. Confirm `user-dirs.dirs` correctly reflects the custom paths and everything resolves correctly (`xdg-user-dir PICTURES` returns the custom path).
3. Update to Omarchy 4.0.
4. Observe that `~/Pictures`, `~/Downloads`, `~/Videos` (Omarchy's defaults) now exist again as empty duplicate folders alongside the custom ones the user was actually using — despite `user-dirs.dirs` never having been reverted.

## Expected behavior

If an XDG user dir is already set in `user-dirs.dirs` and the target directory exists, `omarchy-provision-user` should leave it alone rather than creating a second, default-named directory alongside it.

## Suggested fix

Check for existing, valid XDG dirs before creating the default directories. If they exist use these for the gtk-3.0 bookmarks.

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 08:21 UTC