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

Quattro upgrade leaves broken app-menu icons and a ghost Alacritty launcher

Reported by cempack · filed Aug 14, 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. The outcome (valid, duplicate, not a bug, …) is not decided yet. See the decision.

Original report

Quattro upgrade leaves broken app-menu icons and a ghost Alacritty launcherrevision 1 · captured 2026-09-28 21:29 UTC via poll

System details

ThinkPad T14s Gen 6; Intel Core Ultra 5 228V / Intel Arc 130V/140V; Omarchy 4.0.0-1; Hyprland 0.56.2.

What's wrong?

After upgrading from Omarchy 3 to Quattro, the Apps menu contained broken icons for surviving custom launchers and a dead Alacritty launcher with a generic icon.

The pre-upgrade launchers included:

# GitHub.desktop
Icon=$HOME/.local/share/applications/icons/GitHub.png

# windows-vm.desktop
Icon=$HOME/.local/share/applications/icons/windows.png

(Those paths are shown with $HOME here for privacy; the actual desktop entries contain an absolute home path.)

The Quattro upgrade moves both files out of the live icon directory:

legacy_icons_dir="$HOME/.local/share/applications/icons"
legacy_icons_backup="$HOME/.local/share/applications/icons.omarchy-upgrade-to-quattro.$BACKUP_SUFFIX.bak"
# ...
mv -f "$legacy_icons_dir/$icon" "$legacy_icons_backup/"

The custom .desktop files survive, so their absolute Icon= references become dangling. The shell then repeatedly logs errors such as:

QML QQuickImage ... Cannot open: file://$HOME/.local/share/applications/icons/GitHub.png
QML QQuickImage ... Cannot open: file://$HOME/.local/share/applications/icons/windows.png

The same upgrade also creates ~/.local/share/applications/Alacritty.desktop even when alacritty is not installed:

if [[ -f $root/default/alacritty/Alacritty.desktop && ! -f $HOME/.local/share/applications/Alacritty.desktop ]]; then
  cp "$root/default/alacritty/Alacritty.desktop" "$HOME/.local/share/applications/"
fi

On this machine, command -v alacritty fails and no alacritty package is installed, but the Quickshell Apps menu still shows this entry (despite TryExec=alacritty) with a generic gear icon. Selecting it cannot launch anything.

Steps to reproduce

  1. On Omarchy 3, have a surviving custom desktop entry whose Icon= points at one of the legacy stock PNGs under ~/.local/share/applications/icons/ (for example GitHub.png or windows.png).
  2. Do not have Alacritty installed.
  3. Run the Quattro upgrade.
  4. Open Omarchy menu → Apps.
  5. Observe missing icons for the surviving launchers and a ghost Alacritty entry.
  6. Inspect journalctl --user for the QQuickImage Cannot open warnings.

Expected behavior

  • Before moving legacy icons, the migration should preserve any icon still referenced by a surviving desktop entry, or rewrite that entry to a valid hicolor icon name/path.
  • Alacritty.desktop should only be copied when alacritty is available, matching omarchy-refresh-applications's existing command check.
  • The post-upgrade Apps menu should contain no dead launchers or dangling icon paths.

Verified workaround

Restoring the referenced PNGs from icons.omarchy-upgrade-to-quattro.*.bak, removing the Alacritty desktop entry when its executable is absent, running update-desktop-database, and refreshing the Omarchy menu fixes the problem. A follow-up scan found no unresolved absolute icon paths, and the shell produced no new icon-load warnings when the menu was reopened.

View raw text
### System details

ThinkPad T14s Gen 6; Intel Core Ultra 5 228V / Intel Arc 130V/140V; Omarchy 4.0.0-1; Hyprland 0.56.2.

### What's wrong?

After upgrading from Omarchy 3 to Quattro, the Apps menu contained broken icons for surviving custom launchers and a dead Alacritty launcher with a generic icon.

The pre-upgrade launchers included:

```ini
# GitHub.desktop
Icon=$HOME/.local/share/applications/icons/GitHub.png

# windows-vm.desktop
Icon=$HOME/.local/share/applications/icons/windows.png
```

(Those paths are shown with `$HOME` here for privacy; the actual desktop entries contain an absolute home path.)

The Quattro upgrade moves both files out of the live icon directory:

```bash
legacy_icons_dir="$HOME/.local/share/applications/icons"
legacy_icons_backup="$HOME/.local/share/applications/icons.omarchy-upgrade-to-quattro.$BACKUP_SUFFIX.bak"
# ...
mv -f "$legacy_icons_dir/$icon" "$legacy_icons_backup/"
```

The custom `.desktop` files survive, so their absolute `Icon=` references become dangling. The shell then repeatedly logs errors such as:

```
QML QQuickImage ... Cannot open: file://$HOME/.local/share/applications/icons/GitHub.png
QML QQuickImage ... Cannot open: file://$HOME/.local/share/applications/icons/windows.png
```

The same upgrade also creates `~/.local/share/applications/Alacritty.desktop` even when `alacritty` is not installed:

```bash
if [[ -f $root/default/alacritty/Alacritty.desktop && ! -f $HOME/.local/share/applications/Alacritty.desktop ]]; then
  cp "$root/default/alacritty/Alacritty.desktop" "$HOME/.local/share/applications/"
fi
```

On this machine, `command -v alacritty` fails and no `alacritty` package is installed, but the Quickshell Apps menu still shows this entry (despite `TryExec=alacritty`) with a generic gear icon. Selecting it cannot launch anything.

### Steps to reproduce

1. On Omarchy 3, have a surviving custom desktop entry whose `Icon=` points at one of the legacy stock PNGs under `~/.local/share/applications/icons/` (for example `GitHub.png` or `windows.png`).
2. Do not have Alacritty installed.
3. Run the Quattro upgrade.
4. Open Omarchy menu → Apps.
5. Observe missing icons for the surviving launchers and a ghost Alacritty entry.
6. Inspect `journalctl --user` for the `QQuickImage Cannot open` warnings.

### Expected behavior

- Before moving legacy icons, the migration should preserve any icon still referenced by a surviving desktop entry, or rewrite that entry to a valid hicolor icon name/path.
- `Alacritty.desktop` should only be copied when `alacritty` is available, matching `omarchy-refresh-applications`'s existing command check.
- The post-upgrade Apps menu should contain no dead launchers or dangling icon paths.

### Verified workaround

Restoring the referenced PNGs from `icons.omarchy-upgrade-to-quattro.*.bak`, removing the Alacritty desktop entry when its executable is absent, running `update-desktop-database`, and refreshing the Omarchy menu fixes the problem. A follow-up scan found no unresolved absolute icon paths, and the shell produced no new icon-load warnings when the menu was reopened.

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/6972· 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)

The outcome (valid, duplicate, not a bug, …) is not decided yet.