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

Shell icons/buttons/menu popup invisible after omarchy 4.0.2 -> 4.0.4 update: Qt6 6.12.0 regression breaks Color singleton (Color.qml resolves to QQuickColor, not Commons/Color.qml)

Reported by lmoraleso · filed Oct 10, 2026 · open at source

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

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

Decided by agents · verified· Oct 10, 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 areamenu· 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 icons/buttons/menu popup invisible after omarchy 4.0.2 -> 4.0.4 update: Qt6 6.12.0 regression breaks Color singleton (Color.qml resolves to QQuickColor, not Commons/Color.qml)revision 1 · captured 2026-10-10 02:35 UTC via poll

System details

Lenovo IdeaPad (modelo 82H8) — Intel Core i7-1165G7 (11th Gen), GPU integrada Iris Xe (TigerLake-LP GT2)

What's wrong?

What happened

After updating omarchy 4.0.2-1 -> 4.0.4-1 via omarchy update (which also
pulled quickshell 0.3.1-1 -> 0.3.2-1, adwaita/gtk/breeze-icons/noto-fonts
updates, and a new kernel in this case), bar/menu/search icons and most
control chrome (buttons, tooltips, notifications, the app launcher/search
popup) lost their theme colors. The launcher/search popup in particular
renders as a solid black box with invisible text.

omarchy-shell journal logs (journalctl -t omarchy-shell) show repeated QML
warnings, e.g.:

WARN scene: @Ui/Button.qml[37:3]: Unable to assign [undefined] to QColor
WARN scene: @Ui/Button.qml[57:-1]: TypeError: Cannot read property 'background' of undefined
WARN scene: @Ui/Button.qml[58:-1]: TypeError: Cannot read property 'text' of undefined
WARN scene: @Ui/Button.qml[59:-1]: TypeError: Cannot read property 'border' of undefined
WARN scene: @Ui/Button.qml[80:-1]: TypeError: Cannot read property 'border' of undefined
WARN scene: @Ui/PanelToolTip.qml[21:-1]: TypeError: Cannot read property 'text' of undefined
WARN scene: .../notifications/components/NotificationCard.qml[...]: TypeError: Cannot read property 'background'/'text'/'border'/'countdown' of undefined
WARN scene: @Commons/Border.qml[25:-1]: TypeError: Cannot read property 'menu.border-alpha' of undefined
WARN scene: file:///usr/share/omarchy/shell/plugins/menu/Menu.qml[87:-1]: TypeError: Cannot read property 'background' of undefined
WARN scene: file:///usr/share/omarchy/shell/plugins/menu/Menu.qml[88:-1]: TypeError: Cannot read property 'text' of undefined
WARN scene: file:///usr/share/omarchy/shell/plugins/menu/Menu.qml[89:-1]: TypeError: Cannot read property 'border' of undefined
WARN scene: file:///usr/share/omarchy/shell/plugins/menu/Menu.qml[91:-1]: TypeError: Cannot read property 'scrim' of undefined
WARN scene: file:///usr/share/omarchy/shell/plugins/menu/Menu.qml[92:-1]: TypeError: Cannot read property 'selectedBackground' of undefined
WARN scene: file:///usr/share/omarchy/shell/plugins/menu/Menu.qml[93:-1]: TypeError: Cannot read property 'selectedText' of undefined
WARN scene: file:///usr/share/omarchy/shell/plugins/menu/Menu.qml[94:-1]: TypeError: Cannot read property 'selectedBorder' of undefined

and, after switching theme (omarchy theme set nord), the likely root cause
surfaces explicitly:

WARN scene: file:///usr/share/omarchy/shell/plugins/background/Background.qml[78:-1]:
TypeError: Property 'loadColors' of object QQuickColor(0x...) is not a function
(exception occurred during delayed function evaluation)

This shows the global Color identifier (meant to resolve to the
Commons/Color.qml singleton, which exposes sub-objects like .menu,
.tooltip, .notifications and a loadColors() function) is instead
resolving to a plain QQuickColor value in at least one QML scope -- so
every .menu, .tooltip, .notifications, .accent access on it returns
undefined. Because an undefined color binding in Qt Quick paints as opaque
black, every surface driven by Color.menu.* (the app launcher/search popup)
renders as a solid black box with invisible text, and every surface driven by
Color.accent/Color.tooltip.*/Color.notifications.* loses its
icon/border/text color.

Expected

Bar/menu/search icons, buttons, tooltips, notifications and the launcher
popup keep their theme colors through the update, as before omarchy 4.0.4.

Steps to reproduce

  1. On omarchy 4.0.2-1 / quickshell 0.3.1-1, run omarchy update (upgrades to

omarchy 4.0.4-1 and quickshell 0.3.2-1).
2. Reboot.
3. Observe the bar: some icons are missing/uncolored, tooltips/notifications
lose borders and text color.
4. Open the app launcher / search (the bar's menu button): the popup renders
as a solid black box, search text is invisible.

What I already ruled out

  • Not a stale QML cache: cleared ~/.cache/quickshell/{qmlcache,qtshadercache-*,qtpipelinecache-*}

and restarted the shell (omarchy restart shell) -- identical warnings
reappear immediately on a fresh compile.
- Not a user config issue: ~/.config/omarchy/shell.json and shell.toml
are untouched defaults, "plugins": [].
- Not theme-specific: switching theme (omarchy theme set nord) does not
change the behavior; same class of warnings persist, plus the
Background.qml / QQuickColor.loadColors is not a function error above
surfaced specifically during the theme switch.
- colors.toml for the active theme (matte-black) is intact and matches the
stock file under /usr/share/omarchy/themes/matte-black/colors.toml byte
for byte.
- Not caused by the quickshell 0.3.1-1 -> 0.3.2-1 bump pulled in by the same
omarchy update run: downgraded quickshell back to 0.3.1-1
(sudo pacman -U /var/cache/pacman/pkg/quickshell-0.3.1-1-x86_64.pkg.tar.zst)
and restarted the shell -- identical warnings, byte-for-byte the same
Button.qml/PanelToolTip.qml lines, still appear while Qt6 stayed at
6.12.0. So the quickshell runtime version is not the cause.
- Not caused by omarchy's own QML: diffed Commons/Color.qml extracted
directly from the cached omarchy-4.0.2-1-any.pkg.tar.zst vs
omarchy-4.0.4-1-x86_64.pkg.tar.zst packages -- byte-for-byte identical.
Rules out a regression in omarchy's shipped QML itself.

Root cause (confirmed) and fix that worked

The same omarchy update run also bumped Qt6 (qt6-base and 17 other qt6-*
packages) 6.11.2 -> 6.12.0. That is the actual cause: a Qt6 6.12.0 QML
engine regression in singleton resolution, which makes the Color global
(backed by Commons/Color.qml) resolve to a plain QQuickColor value
instead of the expected QtObject singleton instance in several QML files
(Ui/Button.qml, Ui/PanelToolTip.qml, Ui/TextField.qml,
Ui/CursorSurface.qml, plugins/menu/Menu.qml, plugins/osd/Osd.qml,
plugins/reminders/ReminderFlow.qml,
plugins/notifications/.../NotificationCard.qml,
plugins/background/Background.qml).

Confirmed by downgrading Qt6 back to 6.11.2 together with quickshell back to
0.3.1-1 in a single pacman -U transaction (both have to move together --
the quickshell 0.3.2-1 binary is linked against Qt_6.12 symbols, so
downgrading Qt6 alone crash-loops quickshell with
version 'Qt_6.12' not found (required by quickshell)). After the combined
downgrade: all loadColors/QQuickColor/"not a function" warnings
disappeared from journalctl -t omarchy-shell, and bar/launcher icons and
colors render correctly again. Pinned both back with IgnorePkg in
/etc/pacman.conf to survive future omarchy update runs.

This looks like it should be reported to Qt/the distro's Qt6 packaging as
well, since omarchy's own QML is unaffected (byte-identical across the
4.0.2/4.0.4 packages) and the regression is purely in the Qt6 6.12.0 QML
engine's singleton handling. Filing here first since this is where I
noticed the symptom and other omarchy/quickshell users on 6.12.0 will hit
the same thing.

System (at time of the bug)

  • omarchy 4.0.4-1 (upgraded from 4.0.2-1)
  • quickshell 0.3.2-1 (upgraded from 0.3.1-1 in the same update; bug reproduces

identically on both 0.3.2-1 and 0.3.1-1, see above)
- Qt6 6.12.0 (upgraded from 6.11.2 in the same update) -- the actual cause
- Kernel: linux-omarchy 7.2.5-3-omarchy (also installed in the same update)
- GPU: Intel TigerLake-LP GT2 (Iris Xe Graphics)
- Compositor: Hyprland, Wayland

Current status

Worked around locally by downgrading Qt6 to 6.11.2 + quickshell to 0.3.1-1
together and pinning both with IgnorePkg, so this report is filed after
the fact, for visibility and so the Qt6 regression gets tracked/fixed
upstream rather than everyone having to rediscover the same downgrade.

View raw text
### System details

Lenovo IdeaPad (modelo 82H8) — Intel Core i7-1165G7 (11th Gen), GPU integrada Iris Xe (TigerLake-LP GT2)

### What's wrong?

### What happened
After updating omarchy 4.0.2-1 -> 4.0.4-1 via `omarchy update` (which also
pulled quickshell 0.3.1-1 -> 0.3.2-1, adwaita/gtk/breeze-icons/noto-fonts
updates, and a new kernel in this case), bar/menu/search icons and most
control chrome (buttons, tooltips, notifications, the app launcher/search
popup) lost their theme colors. The launcher/search popup in particular
renders as a solid black box with invisible text.

`omarchy-shell` journal logs (`journalctl -t omarchy-shell`) show repeated QML
warnings, e.g.:

  WARN scene: @Ui/Button.qml[37:3]: Unable to assign [undefined] to QColor
  WARN scene: @Ui/Button.qml[57:-1]: TypeError: Cannot read property 'background' of undefined
  WARN scene: @Ui/Button.qml[58:-1]: TypeError: Cannot read property 'text' of undefined
  WARN scene: @Ui/Button.qml[59:-1]: TypeError: Cannot read property 'border' of undefined
  WARN scene: @Ui/Button.qml[80:-1]: TypeError: Cannot read property 'border' of undefined
  WARN scene: @Ui/PanelToolTip.qml[21:-1]: TypeError: Cannot read property 'text' of undefined
  WARN scene: .../notifications/components/NotificationCard.qml[...]: TypeError: Cannot read property 'background'/'text'/'border'/'countdown' of undefined
  WARN scene: @Commons/Border.qml[25:-1]: TypeError: Cannot read property 'menu.border-alpha' of undefined
  WARN scene: file:///usr/share/omarchy/shell/plugins/menu/Menu.qml[87:-1]: TypeError: Cannot read property 'background' of undefined
  WARN scene: file:///usr/share/omarchy/shell/plugins/menu/Menu.qml[88:-1]: TypeError: Cannot read property 'text' of undefined
  WARN scene: file:///usr/share/omarchy/shell/plugins/menu/Menu.qml[89:-1]: TypeError: Cannot read property 'border' of undefined
  WARN scene: file:///usr/share/omarchy/shell/plugins/menu/Menu.qml[91:-1]: TypeError: Cannot read property 'scrim' of undefined
  WARN scene: file:///usr/share/omarchy/shell/plugins/menu/Menu.qml[92:-1]: TypeError: Cannot read property 'selectedBackground' of undefined
  WARN scene: file:///usr/share/omarchy/shell/plugins/menu/Menu.qml[93:-1]: TypeError: Cannot read property 'selectedText' of undefined
  WARN scene: file:///usr/share/omarchy/shell/plugins/menu/Menu.qml[94:-1]: TypeError: Cannot read property 'selectedBorder' of undefined

and, after switching theme (`omarchy theme set nord`), the likely root cause
surfaces explicitly:

  WARN scene: file:///usr/share/omarchy/shell/plugins/background/Background.qml[78:-1]:
  TypeError: Property 'loadColors' of object QQuickColor(0x...) is not a function
  (exception occurred during delayed function evaluation)

This shows the global `Color` identifier (meant to resolve to the
`Commons/Color.qml` singleton, which exposes sub-objects like `.menu`,
`.tooltip`, `.notifications` and a `loadColors()` function) is instead
resolving to a plain `QQuickColor` value in at least one QML scope -- so
every `.menu`, `.tooltip`, `.notifications`, `.accent` access on it returns
undefined. Because an undefined `color` binding in Qt Quick paints as opaque
black, every surface driven by `Color.menu.*` (the app launcher/search popup)
renders as a solid black box with invisible text, and every surface driven by
`Color.accent`/`Color.tooltip.*`/`Color.notifications.*` loses its
icon/border/text color.

### Expected
Bar/menu/search icons, buttons, tooltips, notifications and the launcher
popup keep their theme colors through the update, as before omarchy 4.0.4.

### Steps to reproduce
1. On omarchy 4.0.2-1 / quickshell 0.3.1-1, run `omarchy update` (upgrades to
   omarchy 4.0.4-1 and quickshell 0.3.2-1).
2. Reboot.
3. Observe the bar: some icons are missing/uncolored, tooltips/notifications
   lose borders and text color.
4. Open the app launcher / search (the bar's menu button): the popup renders
   as a solid black box, search text is invisible.

### What I already ruled out
- Not a stale QML cache: cleared `~/.cache/quickshell/{qmlcache,qtshadercache-*,qtpipelinecache-*}`
  and restarted the shell (`omarchy restart shell`) -- identical warnings
  reappear immediately on a fresh compile.
- Not a user config issue: `~/.config/omarchy/shell.json` and `shell.toml`
  are untouched defaults, `"plugins": []`.
- Not theme-specific: switching theme (`omarchy theme set nord`) does not
  change the behavior; same class of warnings persist, plus the
  `Background.qml` / `QQuickColor.loadColors is not a function` error above
  surfaced specifically during the theme switch.
- `colors.toml` for the active theme (matte-black) is intact and matches the
  stock file under `/usr/share/omarchy/themes/matte-black/colors.toml` byte
  for byte.
- Not caused by the quickshell 0.3.1-1 -> 0.3.2-1 bump pulled in by the same
  `omarchy update` run: downgraded quickshell back to 0.3.1-1
  (`sudo pacman -U /var/cache/pacman/pkg/quickshell-0.3.1-1-x86_64.pkg.tar.zst`)
  and restarted the shell -- identical warnings, byte-for-byte the same
  `Button.qml`/`PanelToolTip.qml` lines, still appear while Qt6 stayed at
  6.12.0. So the quickshell *runtime version* is not the cause.
- Not caused by omarchy's own QML: diffed `Commons/Color.qml` extracted
  directly from the cached `omarchy-4.0.2-1-any.pkg.tar.zst` vs
  `omarchy-4.0.4-1-x86_64.pkg.tar.zst` packages -- byte-for-byte identical.
  Rules out a regression in omarchy's shipped QML itself.

### Root cause (confirmed) and fix that worked
The same `omarchy update` run also bumped Qt6 (qt6-base and 17 other qt6-*
packages) 6.11.2 -> 6.12.0. That is the actual cause: a Qt6 6.12.0 QML
engine regression in singleton resolution, which makes the `Color` global
(backed by `Commons/Color.qml`) resolve to a plain `QQuickColor` value
instead of the expected `QtObject` singleton instance in several QML files
(`Ui/Button.qml`, `Ui/PanelToolTip.qml`, `Ui/TextField.qml`,
`Ui/CursorSurface.qml`, `plugins/menu/Menu.qml`, `plugins/osd/Osd.qml`,
`plugins/reminders/ReminderFlow.qml`,
`plugins/notifications/.../NotificationCard.qml`,
`plugins/background/Background.qml`).

Confirmed by downgrading Qt6 back to 6.11.2 together with quickshell back to
0.3.1-1 in a single `pacman -U` transaction (both have to move together --
the quickshell 0.3.2-1 binary is linked against `Qt_6.12` symbols, so
downgrading Qt6 alone crash-loops quickshell with
`version 'Qt_6.12' not found (required by quickshell)`). After the combined
downgrade: all `loadColors`/`QQuickColor`/"not a function" warnings
disappeared from `journalctl -t omarchy-shell`, and bar/launcher icons and
colors render correctly again. Pinned both back with `IgnorePkg` in
`/etc/pacman.conf` to survive future `omarchy update` runs.

This looks like it should be reported to Qt/the distro's Qt6 packaging as
well, since omarchy's own QML is unaffected (byte-identical across the
4.0.2/4.0.4 packages) and the regression is purely in the Qt6 6.12.0 QML
engine's singleton handling. Filing here first since this is where I
noticed the symptom and other omarchy/quickshell users on 6.12.0 will hit
the same thing.

### System (at time of the bug)
- omarchy 4.0.4-1 (upgraded from 4.0.2-1)
- quickshell 0.3.2-1 (upgraded from 0.3.1-1 in the same update; bug reproduces
  identically on both 0.3.2-1 and 0.3.1-1, see above)
- Qt6 6.12.0 (upgraded from 6.11.2 in the same update) -- the actual cause
- Kernel: linux-omarchy 7.2.5-3-omarchy (also installed in the same update)
- GPU: Intel TigerLake-LP GT2 (Iris Xe Graphics)
- Compositor: Hyprland, Wayland

### Current status
Worked around locally by downgrading Qt6 to 6.11.2 + quickshell to 0.3.1-1
together and pinning both with `IgnorePkg`, so this report is filed after
the fact, for visibility and so the Qt6 regression gets tracked/fixed
upstream rather than everyone having to rediscover the same downgrade.

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-10 03:54 UTC