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-remove-gaming-retroarch leaves libretro-database-git behind (339 MB orphan)
Reported by DanishMafia · filed Sep 21, 2026Closed upstream on 2026-09-21 by the merge of PR #12839 (closed by bjarneo). GitHub close reason: completed.
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
What happened
omarchy-install-gaming-retroarch installs 51 packages. omarchy-remove-gaming-retroarch drops 50. libretro-database-git is installed but never removed, so uninstalling RetroArch leaves a 339 MB orphan on disk with nothing depending on it.
$ pacman -Qi libretro-database-git
Name : libretro-database-git
Required By : None
Installed Size : 338.80 MiBIt does not come back as a dependency of anything else — after running the remove script it is a true orphan (pacman -Qtdq lists it).
It is clearly meant to be part of the feature rather than an accidental addition: the install script also writes three config keys pointing into it (content_database_path, cheat_database_path, cursor_directory → /usr/share/libretro/database/...), under the comment "Point at the database, cheats, and cursors from libretro-database-git".
Evidence
Diffing the two package lists straight out of the shipped scripts:
sed -n '/omarchy-pkg-add/,/^$/p' /usr/share/omarchy/bin/omarchy-install-gaming-retroarch \
| tr ' \\' '\n\n' | grep -E '^(retroarch|libretro|ppsspp)' | sort -u > inst.txt
sed -n '/omarchy-pkg-drop/,/^$/p' /usr/share/omarchy/bin/omarchy-remove-gaming-retroarch \
| tr ' \\' '\n\n' | grep -E '^(retroarch|libretro|ppsspp)' | sort -u > rem.txt
$ wc -l < inst.txt # 51
$ wc -l < rem.txt # 50
$ comm -23 inst.txt rem.txt
libretro-database-gitThat is the only discrepancy — every other package matches, and nothing is dropped that was not installed.
Steps to reproduce
- Menu → Install → Gaming → RetroArch (or run
omarchy-install-gaming-retroarch) - Menu → Remove → Gaming → RetroArch (or run
omarchy-remove-gaming-retroarch) pacman -Q libretro-database-git— still installedpacman -Qtdq | grep libretro— now an orphan
Expected
Removing RetroArch removes everything the install script added, leaving no orphans.
Suggested fix
Add the package to the drop list in omarchy-remove-gaming-retroarch, next to the other *-git entries, mirroring the install script's ordering:
libretro-cap32-git libretro-fbneo-git libretro-uae-git \
libretro-vice-x128-git libretro-vice-x64-git libretro-vice-x64dtv-git libretro-vice-x64sc-git \
libretro-vice-xcbm2-git libretro-vice-xcbm5x0-git libretro-vice-xpet-git \
libretro-vice-xplus4-git libretro-vice-xscpu64-git libretro-vice-xvic-git \
+ libretro-database-git \
retroarch-joypad-autoconfig-gitSince the two lists have to stay in sync by hand, it may be worth keeping them in one shared array that both scripts source — this is exactly the kind of drift that produces silent leftovers.
Environment
- Omarchy
4.0.3-1 - Arch Linux, kernel
7.2.3-arch1-3, x86_64 - Both scripts owned by package
omarchy 4.0.3-1
Searched for duplicates
Checked open and closed issues for retroarch, libretro, orphan, leaves behind, and pkg-drop. The existing RetroArch issues (#11231, #5697) are about installation failures, not removal. Nothing covers remove-script/install-script list drift.
Filed by Claude Opus 5 (1M context) via Claude Code.
View raw text
## What happened `omarchy-install-gaming-retroarch` installs **51** packages. `omarchy-remove-gaming-retroarch` drops **50**. `libretro-database-git` is installed but never removed, so uninstalling RetroArch leaves a 339 MB orphan on disk with nothing depending on it. ``` $ pacman -Qi libretro-database-git Name : libretro-database-git Required By : None Installed Size : 338.80 MiB ``` It does not come back as a dependency of anything else — after running the remove script it is a true orphan (`pacman -Qtdq` lists it). It is clearly meant to be part of the feature rather than an accidental addition: the install script also writes three config keys pointing into it (`content_database_path`, `cheat_database_path`, `cursor_directory` → `/usr/share/libretro/database/...`), under the comment *"Point at the database, cheats, and cursors from libretro-database-git"*. ## Evidence Diffing the two package lists straight out of the shipped scripts: ```bash sed -n '/omarchy-pkg-add/,/^$/p' /usr/share/omarchy/bin/omarchy-install-gaming-retroarch \ | tr ' \\' '\n\n' | grep -E '^(retroarch|libretro|ppsspp)' | sort -u > inst.txt sed -n '/omarchy-pkg-drop/,/^$/p' /usr/share/omarchy/bin/omarchy-remove-gaming-retroarch \ | tr ' \\' '\n\n' | grep -E '^(retroarch|libretro|ppsspp)' | sort -u > rem.txt $ wc -l < inst.txt # 51 $ wc -l < rem.txt # 50 $ comm -23 inst.txt rem.txt libretro-database-git ``` That is the only discrepancy — every other package matches, and nothing is dropped that was not installed. ## Steps to reproduce 1. Menu → Install → Gaming → RetroArch (or run `omarchy-install-gaming-retroarch`) 2. Menu → Remove → Gaming → RetroArch (or run `omarchy-remove-gaming-retroarch`) 3. `pacman -Q libretro-database-git` — still installed 4. `pacman -Qtdq | grep libretro` — now an orphan ## Expected Removing RetroArch removes everything the install script added, leaving no orphans. ## Suggested fix Add the package to the drop list in `omarchy-remove-gaming-retroarch`, next to the other `*-git` entries, mirroring the install script's ordering: ```diff libretro-cap32-git libretro-fbneo-git libretro-uae-git \ libretro-vice-x128-git libretro-vice-x64-git libretro-vice-x64dtv-git libretro-vice-x64sc-git \ libretro-vice-xcbm2-git libretro-vice-xcbm5x0-git libretro-vice-xpet-git \ libretro-vice-xplus4-git libretro-vice-xscpu64-git libretro-vice-xvic-git \ + libretro-database-git \ retroarch-joypad-autoconfig-git ``` Since the two lists have to stay in sync by hand, it may be worth keeping them in one shared array that both scripts source — this is exactly the kind of drift that produces silent leftovers. ## Environment - Omarchy `4.0.3-1` - Arch Linux, kernel `7.2.3-arch1-3`, x86_64 - Both scripts owned by package `omarchy 4.0.3-1` ## Searched for duplicates Checked open and closed issues for `retroarch`, `libretro`, `orphan`, `leaves behind`, and `pkg-drop`. The existing RetroArch issues (#11231, #5697) are about installation failures, not removal. Nothing covers remove-script/install-script list drift. Filed by Claude Opus 5 (1M context) via Claude Code.
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.