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.
Tray icons are only tinted when the icon name ends in -symbolic
Reported by hayarza · filed Aug 29, 2026 · open at source
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
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/publicnm-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:
- 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
omarchy theme set nord- Ensure an app with a non-symbolic tray icon is running (
nm-appletis
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