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-5266GitHub issuePublicDecided· Duplicate

Shell bar renders invisible after Qt 6.12 upgrade (QtQuick/Color singleton shadows qs.Commons.Color)

Reported by joey129 · filed Oct 9, 2026 · open at source

Decided: Duplicate — decided by agents · verified 4 days ago.

R-5254 is the earliest report of this defect — filed Oct 8, 2026, open upstream. This report (filed Oct 9, 2026) describes the same defect, so it is folded under it in the inbox.

Decided by agents · verified· Oct 9, 2026

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?
AreaPartly in the audited areamenulock· 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

Shell bar renders invisible after Qt 6.12 upgrade (QtQuick/Color singleton shadows qs.Commons.Color)revision 1 · captured 2026-10-09 13:32 UTC via poll

Summary

After upgrading to Qt 6.12 (qt6-base/qt6-declarative 6.12.0, installed 07 Oct 2026), the Omarchy shell bar renders fully transparent / appears not to load. All color bindings across the shell fail at startup.

Environment

  • Omarchy 4.0.4-1, kernel 7.2.5-3-omarchy
  • quickshell 0.3.2-1 (also fails), 0.3.1-1 (works)
  • qt6-base 6.12.0-2, qt6-declarative 6.12.0-1

Root cause

Qt 6.12 added a new built-in Color singleton to the QtQuick module:

Component { ... name: "QQuickColor" ... exports: ["QtQuick/Color 6.12"] isSingleton: true ... }

(see /usr/lib/qt6/qml/QtQuick/plugins.qmltypes)

The Omarchy shell defines its own Color singleton in qs.Commons (Commons/Color.qml, declared as singleton Color 1.0 Color.qml in Commons/qmldir). Because shell QML files import both QtQuick and qs.Commons, the name Color now resolves to Qt's singleton instead of Omarchy's. Consequence: Color.loadColors, Color.bar, Color.menu, etc. do not exist, so every surface binding fails:

  • @plugins/bar/Bar.qml[74..81] TypeError: Cannot read property 'text'/'background'/'active' of undefined
  • plugins/background/Background.qml[78] TypeError: Property 'loadColors' of object QQuickColor(...) is not a function
  • Same pattern in lock, polkit, clipboard, emojis, menu, osd, reminders, agents, tray, image-picker, notifications

The bar window itself still exists (hyprland layer omarchy-bar, 1200x26, alpha 1) but is fully transparent because all property color bindings fall back to their default (transparent).

First appearance in the journal: the first shell start after the Qt 6.12 upgrade (08 Oct 19:34:35). A shell start immediately before the upgrade (07 Oct 16:42) was error-free.

Steps to reproduce

  1. Install Qt ≥ 6.12 (pacman -Syu after 07 Oct 2026).
  2. Restart the shell (omarchy restart shell).
  3. The top bar becomes invisible.

Workaround

Downgrade to the last known-good Qt 6.11.2 set (qt6-base, qt6-declarative, qt6-svg, qt6-wayland, qt6-imageformats, qt6-translations) plus quickshell 0.3.1-1, and add them to IgnorePkg until a fix ships.

Suggested fix

QML name resolution gives Qt's QtQuick/Color precedence over the explicitly imported qs.Commons.Color. A robust fix is to rename Omarchy's singleton (e.g. OmarchyColor) or change the import structure so Color is unambiguous across the shell (shell.qml, Commons/, plugins/, services/ all use it).

Screenshot

/home/joey/Pictures/screenshot-2026-10-09_15-04-54.png (before workaround) — can be attached.

View raw text
## Summary

After upgrading to **Qt 6.12** (`qt6-base`/`qt6-declarative` 6.12.0, installed 07 Oct 2026), the Omarchy shell bar renders fully transparent / appears not to load. All color bindings across the shell fail at startup.

## Environment

- Omarchy 4.0.4-1, kernel 7.2.5-3-omarchy
- quickshell 0.3.2-1 (also fails), 0.3.1-1 (works)
- qt6-base 6.12.0-2, qt6-declarative 6.12.0-1

## Root cause

Qt 6.12 added a new built-in `Color` singleton to the `QtQuick` module:

```
Component { ... name: "QQuickColor" ... exports: ["QtQuick/Color 6.12"] isSingleton: true ... }
```

(see `/usr/lib/qt6/qml/QtQuick/plugins.qmltypes`)

The Omarchy shell defines its own `Color` singleton in `qs.Commons` (`Commons/Color.qml`, declared as `singleton Color 1.0 Color.qml` in `Commons/qmldir`). Because shell QML files import both `QtQuick` and `qs.Commons`, the name `Color` now resolves to Qt's singleton instead of Omarchy's. Consequence: `Color.loadColors`, `Color.bar`, `Color.menu`, etc. do not exist, so every surface binding fails:

- `@plugins/bar/Bar.qml[74..81]` `TypeError: Cannot read property 'text'/'background'/'active' of undefined`
- `plugins/background/Background.qml[78]` `TypeError: Property 'loadColors' of object QQuickColor(...) is not a function`
- Same pattern in lock, polkit, clipboard, emojis, menu, osd, reminders, agents, tray, image-picker, notifications

The bar window itself still exists (hyprland layer `omarchy-bar`, 1200x26, alpha 1) but is fully transparent because all `property color` bindings fall back to their default (transparent).

First appearance in the journal: the first shell start after the Qt 6.12 upgrade (08 Oct 19:34:35). A shell start immediately before the upgrade (07 Oct 16:42) was error-free.

## Steps to reproduce

1. Install Qt ≥ 6.12 (`pacman -Syu` after 07 Oct 2026).
2. Restart the shell (`omarchy restart shell`).
3. The top bar becomes invisible.

## Workaround

Downgrade to the last known-good Qt 6.11.2 set (`qt6-base`, `qt6-declarative`, `qt6-svg`, `qt6-wayland`, `qt6-imageformats`, `qt6-translations`) plus `quickshell 0.3.1-1`, and add them to `IgnorePkg` until a fix ships.

## Suggested fix

QML name resolution gives Qt's `QtQuick/Color` precedence over the explicitly imported `qs.Commons.Color`. A robust fix is to rename Omarchy's singleton (e.g. `OmarchyColor`) or change the import structure so `Color` is unambiguous across the shell (`shell.qml`, `Commons/`, `plugins/`, `services/` all use it).

## Screenshot

`/home/joey/Pictures/screenshot-2026-10-09_15-04-54.png` (before workaround) — can be attached.

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

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.

  • DuplicateR-5254Decided by agents · verified · 2026-10-09 13:41 UTC