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

Tray icons are only tinted when the icon name ends in -symbolic

Reported by hayarza · filed Aug 29, 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

Tray icons are only tinted when the icon name ends in -symbolicrevision 1 · captured 2026-09-28 21:24 UTC via poll

What happened

The bar recolors its own glyphs to stay legible when transparency is toggled,
but tray icons are only tinted when the icon name ends in -symbolic. Apps
that advertise a non-symbolic icon name are rendered as-is, so they cannot
follow the bar foreground and are unreadable in one of the two bar states.

From shell/plugins/bar/widgets/Tray.qml:

// Symbolic icons ship a fixed fill (often near-white) that the host is meant
// to recolor to its foreground; detect them by the freedesktop "-symbolic"
// name suffix so they can be tinted instead of rendered as-is.
function iconIsSymbolic(icon) {
  var name = String(icon || "").split("?")[0]
  return name.slice(-9) === "-symbolic"
}

Both tray items on this machine fail that test:

nm-applet   IconName = "nm-device-wired"
steam       IconName = "steam_tray_mono"
            IconThemePath = ~/.local/share/Steam/public

nm-applet is not niche — it is autostarted system-wide by
/etc/xdg/autostart/nm-applet.desktop from network-manager-applet.

This compounds the icon-theme mismatch filed separately: with a light icon
set on a dark bar the icons are invisible, and with a dark icon set they are
invisible in transparent mode over a light wallpaper. There is no icon-theme
choice that works for both bar states, because the icon is static and the
backdrop is not.

Expected

Some fallback for non-symbolic tray icons. A few options, roughly in order of
effort:

  1. Treat a monochrome icon as tintable regardless of name — many apps ship a

single-color tray icon without following the -symbolic convention
(steam_tray_mono literally says "mono").
2. Prefer a -symbolic variant when the icon theme provides one for the
requested name, before falling back to the literal name.
3. Draw a subtle backdrop chip behind untintable tray icons in transparent
mode, so they keep contrast without being recolored.

Steps to reproduce

  1. omarchy theme set nord
  2. Ensure an app with a non-symbolic tray icon is running (nm-applet is

autostarted on most installs).
3. Expand the bar's system tray. The icon is dark-on-dark.
4. Override the icon theme to the dark variant:
echo "Yaru-blue-dark" > ~/.config/omarchy/themes/nord/icons.theme && omarchy theme set nord
5. The icon is now legible on the solid dark bar.
6. Double-click the bar to enable transparency over a light wallpaper. The
same icon is now light-on-light and unreadable.

The bar's own font glyphs remain legible throughout, which is the contrast
that makes the gap obvious.

System

  • Omarchy 4.0.1-1 (upgraded from 3.x via omarchy-upgrade-to-quattro)
  • Kernel 7.1.9-arch1-2
  • AMD Ryzen 5 5600X, NVIDIA RTX 2060 (TU106), nvidia-open-dkms
  • Single 1920x1080 display, scale 1
View raw text
### What happened

The bar recolors its own glyphs to stay legible when transparency is toggled,
but tray icons are only tinted when the icon name ends in `-symbolic`. Apps
that advertise a non-symbolic icon name are rendered as-is, so they cannot
follow the bar foreground and are unreadable in one of the two bar states.

From `shell/plugins/bar/widgets/Tray.qml`:

```qml
// Symbolic icons ship a fixed fill (often near-white) that the host is meant
// to recolor to its foreground; detect them by the freedesktop "-symbolic"
// name suffix so they can be tinted instead of rendered as-is.
function iconIsSymbolic(icon) {
  var name = String(icon || "").split("?")[0]
  return name.slice(-9) === "-symbolic"
}
```

Both tray items on this machine fail that test:

```
nm-applet   IconName = "nm-device-wired"
steam       IconName = "steam_tray_mono"
            IconThemePath = ~/.local/share/Steam/public
```

`nm-applet` is not niche — it is autostarted system-wide by
`/etc/xdg/autostart/nm-applet.desktop` from `network-manager-applet`.

This compounds the icon-theme mismatch filed separately: with a light icon
set on a dark bar the icons are invisible, and with a dark icon set they are
invisible in transparent mode over a light wallpaper. There is no icon-theme
choice that works for both bar states, because the icon is static and the
backdrop is not.

### Expected

Some fallback for non-symbolic tray icons. A few options, roughly in order of
effort:

1. Treat a monochrome icon as tintable regardless of name — many apps ship a
   single-color tray icon without following the `-symbolic` convention
   (`steam_tray_mono` literally says "mono").
2. Prefer a `-symbolic` variant when the icon theme provides one for the
   requested name, before falling back to the literal name.
3. Draw a subtle backdrop chip behind untintable tray icons in transparent
   mode, so they keep contrast without being recolored.

### Steps to reproduce

1. `omarchy theme set nord`
2. Ensure an app with a non-symbolic tray icon is running (`nm-applet` is
   autostarted on most installs).
3. Expand the bar's system tray. The icon is dark-on-dark.
4. Override the icon theme to the dark variant:
   `echo "Yaru-blue-dark" > ~/.config/omarchy/themes/nord/icons.theme && omarchy theme set nord`
5. The icon is now legible on the solid dark bar.
6. Double-click the bar to enable transparency over a light wallpaper. The
   same icon is now light-on-light and unreadable.

The bar's own font glyphs remain legible throughout, which is the contrast
that makes the gap obvious.

### System

- Omarchy 4.0.1-1 (upgraded from 3.x via omarchy-upgrade-to-quattro)
- Kernel 7.1.9-arch1-2
- AMD Ryzen 5 5600X, NVIDIA RTX 2060 (TU106), nvidia-open-dkms
- Single 1920x1080 display, scale 1

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

  • Related PRpr/14661· 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.

  • Out of scopeDecided by agents · verified · 2026-10-09 09:49 UTC