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.
Symbolic tray icons with a dark fill render invisible: MultiEffect.colorization cannot lighten the source (Cryptomator)
Reported by relctx · filed Aug 25, 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
System details
Omarchy 4.0.0, Hyprland 0.56.2, quickshell-git 0.3.0.r20.g28771c7-2, Qt 6.11.2, icon theme Yaru-blue-dark (yaru-icon-theme 26.04.5.1ubuntu-1), cryptomator 1.19.3-1.
What's wrong
Symbolic tray icons with a dark fill are drawn at close to the bar background colour, so they are invisible. The tray recolors symbolic icons to the bar foreground, but that recolor does not lighten a dark icon.
Cryptomator publishes IconName = org.cryptomator.Cryptomator.tray-symbolic. That SVG is filled #222222.
Measured on a dark theme:
- bar background:
#1C2128 - bar foreground (wifi, battery, clock glyphs):
#E8E6E3 - rendered Cryptomator icon:
#1D2128
Steps to reproduce
- Run a tray app whose
IconNameends in-symbolicand whose SVG has a dark fill.cryptomatorwithshowTrayIconset is one case; its icon is/usr/share/icons/hicolor/symbolic/apps/org.cryptomator.Cryptomator.tray-symbolic.svg. - Use a dark theme.
- The tray slot is occupied and clickable, but nothing is visible.
Cause
shell/plugins/bar/widgets/Tray.qml, TrayIcon component:
MultiEffect {
anchors.fill: trayIconImage
source: trayIconImage
visible: trayIconRoot.symbolic
colorization: 1.0
colorizationColor: root.foreground
}MultiEffect.colorization takes hue and saturation from colorizationColor but keeps the source's lightness, so it cannot lighten a dark source.
Source #222222, colorizationColor #E8E6E3, output #1D2128. If colorization replaced the colour, the output would be #E8E6E3.
The comment on iconIsSymbolic says symbolic icons "ship a fixed fill (often near-white)". Many are dark instead: Adwaita's symbolic fill is #2e3436, Cryptomator's is #222222.
Fix
Paint the foreground and use the icon as an alpha mask, so the source colour is discarded:
Rectangle {
anchors.fill: trayIconImage
color: root.foreground
visible: trayIconRoot.symbolic
layer.enabled: true
layer.effect: MultiEffect {
maskEnabled: true
maskSource: trayIconImage
}
}Tested locally: the icon renders at #E8E6E3, the same as the wifi, battery and clock glyphs, and follows bar.foreground when the theme changes.
brightness: 1.0 before colorization also makes the icon visible, but it comes out near-white instead of the bar foreground.
View raw text
## System details
Omarchy 4.0.0, Hyprland 0.56.2, quickshell-git 0.3.0.r20.g28771c7-2, Qt 6.11.2, icon theme Yaru-blue-dark (yaru-icon-theme 26.04.5.1ubuntu-1), cryptomator 1.19.3-1.
## What's wrong
Symbolic tray icons with a dark fill are drawn at close to the bar background colour, so they are invisible. The tray recolors symbolic icons to the bar foreground, but that recolor does not lighten a dark icon.
Cryptomator publishes `IconName = org.cryptomator.Cryptomator.tray-symbolic`. That SVG is filled `#222222`.
Measured on a dark theme:
- bar background: `#1C2128`
- bar foreground (wifi, battery, clock glyphs): `#E8E6E3`
- rendered Cryptomator icon: `#1D2128`
## Steps to reproduce
1. Run a tray app whose `IconName` ends in `-symbolic` and whose SVG has a dark fill. `cryptomator` with `showTrayIcon` set is one case; its icon is `/usr/share/icons/hicolor/symbolic/apps/org.cryptomator.Cryptomator.tray-symbolic.svg`.
2. Use a dark theme.
3. The tray slot is occupied and clickable, but nothing is visible.
## Cause
`shell/plugins/bar/widgets/Tray.qml`, `TrayIcon` component:
```qml
MultiEffect {
anchors.fill: trayIconImage
source: trayIconImage
visible: trayIconRoot.symbolic
colorization: 1.0
colorizationColor: root.foreground
}
```
`MultiEffect.colorization` takes hue and saturation from `colorizationColor` but keeps the source's lightness, so it cannot lighten a dark source.
Source `#222222`, `colorizationColor` `#E8E6E3`, output `#1D2128`. If colorization replaced the colour, the output would be `#E8E6E3`.
The comment on `iconIsSymbolic` says symbolic icons "ship a fixed fill (often near-white)". Many are dark instead: Adwaita's symbolic fill is `#2e3436`, Cryptomator's is `#222222`.
## Fix
Paint the foreground and use the icon as an alpha mask, so the source colour is discarded:
```qml
Rectangle {
anchors.fill: trayIconImage
color: root.foreground
visible: trayIconRoot.symbolic
layer.enabled: true
layer.effect: MultiEffect {
maskEnabled: true
maskSource: trayIconImage
}
}
```
Tested locally: the icon renders at `#E8E6E3`, the same as the wifi, battery and clock glyphs, and follows `bar.foreground` when the theme changes.
`brightness: 1.0` before `colorization` also makes the icon visible, but it comes out near-white instead of the bar foreground.
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/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 08:42 UTC