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

OSD card uses Color.background while its icon/percentage use Color.popups.text

Reported by rmsturge · filed Oct 4, 2026 · open at source

Decided: Out of scope — decided by agents · verified 3 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

OSD card uses Color.background while its icon/percentage use Color.popups.textrevision 1 · captured 2026-10-04 05:03 UTC via poll

<img width="550" height="215" alt="Image" src="https://github.com/user-attachments/assets/ca6f97f0-55a7-4e28-aa31-189de7e749a9" />
<img width="550" height="140" alt="Image" src="https://github.com/user-attachments/assets/a55d0f19-8614-4794-b0d8-0d0735798ee1" />
<img width="550" height="140" alt="Image" src="https://github.com/user-attachments/assets/7d508792-e37e-4def-b1c2-24441edf2189" />

System details

  • Omarchy: 4.0.4-1 (the same code is still on the default quattro branch)
  • Hyprland: 0.56.2
  • Machine: Dell XPS 13 (DX13260), Intel Core 5 320, Intel Graphics (Wildcat Lake)

Description

The volume/brightness OSD (shell/plugins/osd/Osd.qml) draws its card with the
theme's main background, but its icon, percentage and track with the popup text
colour:

// shell/plugins/osd/Osd.qml
color: Util.alpha(Color.background, 0.97)          // card
...
color: Color.popups.text                            // icon, percentage
color: Util.alpha(Color.popups.text, 0.45)          // track

Every other popup surface pairs Color.popups.background with Color.popups.text, and
the OSD is the only file in shell/ that mixes them. With the generated shell.toml
the two backgrounds are identical, so it isn't visible on stock themes. But when a
theme's shell.toml gives popups their own colours, e.g. light popups (`[popups]
background light, text dark) on a dark colors.toml` background, the OSD shows dark
text on a dark card and the icon and percentage become almost invisible. Only the level
bar (Color.accent) stays readable.

Steps to reproduce

  1. Use a dark theme and give its popups light colours in the theme's shell.toml:
   [popups]
   background = "#b4b8bc"
   text       = "#202428"
  1. Re-apply the theme (omarchy theme set <theme>).
  2. Press a volume or brightness key.

Expected: the OSD card uses the popup background, so the icon and percentage are
readable (as in every other popup).
Actual: the card stays dark (Color.background) while the icon and percentage use
the dark popup text colour, so they're nearly invisible.

Suggested fix

--- a/shell/plugins/osd/Osd.qml
+++ b/shell/plugins/osd/Osd.qml
-      color: Util.alpha(Color.background, 0.97)
+      color: Util.alpha(Color.popups.background, 0.97)

Verified locally with a clone of omarchy.osd; screenshots before and after are
attached below.

Screenshots

<!-- attach: before-volume-osd.png, before-brightness-osd.png, after-fix.png -->

View raw text
<img width="550" height="215" alt="Image" src="https://github.com/user-attachments/assets/ca6f97f0-55a7-4e28-aa31-189de7e749a9" />
<img width="550" height="140" alt="Image" src="https://github.com/user-attachments/assets/a55d0f19-8614-4794-b0d8-0d0735798ee1" />
<img width="550" height="140" alt="Image" src="https://github.com/user-attachments/assets/7d508792-e37e-4def-b1c2-24441edf2189" />

### System details

- Omarchy: 4.0.4-1 (the same code is still on the default `quattro` branch)
- Hyprland: 0.56.2
- Machine: Dell XPS 13 (DX13260), Intel Core 5 320, Intel Graphics (Wildcat Lake)

### Description

The volume/brightness OSD (`shell/plugins/osd/Osd.qml`) draws its card with the
theme's **main** background, but its icon, percentage and track with the **popup** text
colour:

```qml
// shell/plugins/osd/Osd.qml
color: Util.alpha(Color.background, 0.97)          // card
...
color: Color.popups.text                            // icon, percentage
color: Util.alpha(Color.popups.text, 0.45)          // track
```

Every other popup surface pairs `Color.popups.background` with `Color.popups.text`, and
the OSD is the only file in `shell/` that mixes them. With the generated `shell.toml`
the two backgrounds are identical, so it isn't visible on stock themes. But when a
theme's `shell.toml` gives popups their own colours, e.g. light popups (`[popups]
background` light, `text` dark) on a dark `colors.toml` background, the OSD shows dark
text on a dark card and the icon and percentage become almost invisible. Only the level
bar (`Color.accent`) stays readable.

### Steps to reproduce

1. Use a dark theme and give its popups light colours in the theme's `shell.toml`:
   ```toml
   [popups]
   background = "#b4b8bc"
   text       = "#202428"
   ```
2. Re-apply the theme (`omarchy theme set <theme>`).
3. Press a volume or brightness key.

**Expected:** the OSD card uses the popup background, so the icon and percentage are
readable (as in every other popup).
**Actual:** the card stays dark (`Color.background`) while the icon and percentage use
the dark popup text colour, so they're nearly invisible.

### Suggested fix

```diff
--- a/shell/plugins/osd/Osd.qml
+++ b/shell/plugins/osd/Osd.qml
-      color: Util.alpha(Color.background, 0.97)
+      color: Util.alpha(Color.popups.background, 0.97)
```

Verified locally with a clone of `omarchy.osd`; screenshots before and after are
attached below.

### Screenshots

<!-- attach: before-volume-osd.png, before-brightness-osd.png, after-fix.png -->
  • ca6f97f0-55a7-4e28-aa31-189de7e749a9
  • a55d0f19-8614-4794-b0d8-0d0735798ee1
  • 7d508792-e37e-4def-b1c2-24441edf2189

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.

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