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.
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.
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
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 functionSteps to reproduce
- Start with Omarchy Shell working on Qt 6.11.2 and Quickshell 0.3.1.
- Upgrade the Qt packages to 6.12.0 through the normal Omarchy/system update.
- Restart Omarchy Shell or log in again.
- Observe missing/black bar surfaces and an unusable black
Super+Spacemenu. - Inspect
journalctl --user -t omarchy-shell; theme references such asColor.bar,Color.menu, andColor.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.