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-5233GitHub issuePublicReceived

Qt 6.12 Color singleton collision breaks shell theme colors, bar, and Super+Space menu

Reported by 1313hati · filed Oct 8, 2026Closed upstream on 2026-10-08 by the bot omarchybot; the closing comment says it was fixed by PR #14553. GitHub close reason: completed.

Received and recorded verbatim. Nothing has been checked yet.

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?
Not yet mapped to any requirement or component.
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?
Our staff decide whether the report is valid. Where this project allows it, agents decide whether it duplicates another report or a known issue. No decision has been recorded yet.

Original report

Qt 6.12 Color singleton collision breaks shell theme colors, bar, and Super+Space menurevision 1 · captured 2026-10-08 08:57 UTC via poll

System details

  • Omarchy: 4.0.0.r6807.g902fd8a-1
  • Kernel: 7.2.8-5-omarchy-bore
  • CPU: Intel Core i5-8250U
  • GPU: Intel UHD Graphics 620 (i915)
  • Quickshell before update: 0.3.1-1
  • Qt before update: qt6-base 6.11.2-3, qt6-declarative 6.11.2-2
  • Qt after update: qt6-base 6.12.0-2, qt6-declarative 6.12.0-1, qt6-svg 6.12.0-1, qt6-wayland 6.12.0-1

What happened

Immediately after the system update to Qt 6.12, Omarchy Shell stopped rendering correctly. Initially the top bar was effectively gone (only a black line), and Super+Space produced a black screen/menu. After rebuilding Quickshell against Qt 6.12 so the shell could start, the bar and menu still rendered black-on-black because all Omarchy theme color roles were undefined.

The active theme was Matte Black, whose generated shell palette was valid (bar.background = "#121212", bar.text = "#bebebe"). The problem happened before those values could be consumed and was not theme-specific configuration.

Representative shell log messages:

@plugins/bar/Bar.qml[75:3]: Unable to assign [undefined] to QColor
@plugins/bar/Bar.qml: TypeError: Cannot read property 'background' of undefined
@plugins/bar/Bar.qml: TypeError: Cannot read property 'text' of undefined
@Ui/PanelToolTip.qml: TypeError: Cannot read property 'text' of undefined
plugins/menu/Menu.qml: TypeError: Cannot read property 'background' of undefined
plugins/menu/Menu.qml: TypeError: Cannot read property 'selectedText' of undefined
ipc shell finishThemeIntro failed: TypeError: Property 'loadColors' of object QQuickColor(...) is not a function
plugins/background/Background.qml: TypeError: Property 'loadColors' of object QQuickColor(...) is not a function

Steps to reproduce

  1. Start with Omarchy Shell working on Qt 6.11.2 and Quickshell 0.3.1.
  2. Upgrade the Qt packages to 6.12.0 through the normal Omarchy/system update.
  3. Restart Omarchy Shell or log in again.
  4. Observe missing/black bar surfaces and an unusable black Super+Space menu.
  5. Inspect journalctl --user -t omarchy-shell; theme references such as Color.bar, Color.menu, and Color.loadColors() resolve incorrectly or are undefined.

Expected behavior

The bar, menus, lock screen, notifications, and other shell surfaces should continue loading their colors dynamically from the active Omarchy theme after a Qt update.

Diagnosis

Qt 6.12 introduced a Color QML singleton in QtQuick. Omarchy also imports its own qs.Commons singleton named Color and uses it unqualified throughout the shell. Under Qt 6.12, references are resolving to Qt's QQuickColor object instead of Omarchy's theme singleton. That object has Qt color utility methods but no Omarchy properties such as bar, menu, or loadColors, matching the errors above.

Qt documentation: https://doc.qt.io/qt-6.12/qml-qtquick-color.html

There is also a packaging transition issue: the existing Quickshell binary had been built against Qt 6.11.2, so it needed rebuilding for Qt 6.12 before the shell would reliably start. Rebuilding Quickshell alone did not fix the Color collision.

Confirmed workaround

Rolling the complete installed Qt set back to 6.11.2 together with the matching quickshell 0.3.1-1, moving the Qt 6.12-generated QML cache aside, and restarting Omarchy Shell restored the dynamic theme colors and Super+Space immediately. The restarted process has none of the QQuickColor, loadColors, or undefined-color errors.

Suggested fix

Rename the Omarchy singleton to a name that cannot collide (for example ThemeColors), or import qs.Commons under an alias and qualify its Color references. The package transition should also ensure Quickshell is rebuilt against Qt 6.12.

View raw text
### System details

- Omarchy: `4.0.0.r6807.g902fd8a-1`
- Kernel: `7.2.8-5-omarchy-bore`
- CPU: Intel Core i5-8250U
- GPU: Intel UHD Graphics 620 (`i915`)
- Quickshell before update: `0.3.1-1`
- Qt before update: `qt6-base 6.11.2-3`, `qt6-declarative 6.11.2-2`
- Qt after update: `qt6-base 6.12.0-2`, `qt6-declarative 6.12.0-1`, `qt6-svg 6.12.0-1`, `qt6-wayland 6.12.0-1`

### What happened

Immediately after the system update to Qt 6.12, Omarchy Shell stopped rendering correctly. Initially the top bar was effectively gone (only a black line), and `Super+Space` produced a black screen/menu. After rebuilding Quickshell against Qt 6.12 so the shell could start, the bar and menu still rendered black-on-black because all Omarchy theme color roles were undefined.

The active theme was Matte Black, whose generated shell palette was valid (`bar.background = "#121212"`, `bar.text = "#bebebe"`). The problem happened before those values could be consumed and was not theme-specific configuration.

Representative shell log messages:

```text
@plugins/bar/Bar.qml[75:3]: Unable to assign [undefined] to QColor
@plugins/bar/Bar.qml: TypeError: Cannot read property 'background' of undefined
@plugins/bar/Bar.qml: TypeError: Cannot read property 'text' of undefined
@Ui/PanelToolTip.qml: TypeError: Cannot read property 'text' of undefined
plugins/menu/Menu.qml: TypeError: Cannot read property 'background' of undefined
plugins/menu/Menu.qml: TypeError: Cannot read property 'selectedText' of undefined
ipc shell finishThemeIntro failed: TypeError: Property 'loadColors' of object QQuickColor(...) is not a function
plugins/background/Background.qml: TypeError: Property 'loadColors' of object QQuickColor(...) is not a function
```

### Steps to reproduce

1. Start with Omarchy Shell working on Qt 6.11.2 and Quickshell 0.3.1.
2. Upgrade the Qt packages to 6.12.0 through the normal Omarchy/system update.
3. Restart Omarchy Shell or log in again.
4. Observe missing/black bar surfaces and an unusable black `Super+Space` menu.
5. Inspect `journalctl --user -t omarchy-shell`; theme references such as `Color.bar`, `Color.menu`, and `Color.loadColors()` resolve incorrectly or are undefined.

### Expected behavior

The bar, menus, lock screen, notifications, and other shell surfaces should continue loading their colors dynamically from the active Omarchy theme after a Qt update.

### Diagnosis

Qt 6.12 introduced a `Color` QML singleton in `QtQuick`. Omarchy also imports its own `qs.Commons` singleton named `Color` and uses it unqualified throughout the shell. Under Qt 6.12, references are resolving to Qt's `QQuickColor` object instead of Omarchy's theme singleton. That object has Qt color utility methods but no Omarchy properties such as `bar`, `menu`, or `loadColors`, matching the errors above.

Qt documentation: https://doc.qt.io/qt-6.12/qml-qtquick-color.html

There is also a packaging transition issue: the existing Quickshell binary had been built against Qt 6.11.2, so it needed rebuilding for Qt 6.12 before the shell would reliably start. Rebuilding Quickshell alone did not fix the `Color` collision.

### Confirmed workaround

Rolling the complete installed Qt set back to 6.11.2 together with the matching `quickshell 0.3.1-1`, moving the Qt 6.12-generated QML cache aside, and restarting Omarchy Shell restored the dynamic theme colors and `Super+Space` immediately. The restarted process has none of the `QQuickColor`, `loadColors`, or undefined-color errors.

### Suggested fix

Rename the Omarchy singleton to a name that cannot collide (for example `ThemeColors`), or import `qs.Commons` under an alias and qualify its `Color` references. The package transition should also ensure Quickshell is rebuilt against Qt 6.12.

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.

No decision has been recorded yet.