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

Cloned bar option fails to load (required props), and stock-bar fallback never engages (errorString ReferenceError)

Reported by TheeHk-blip · filed Sep 9, 2026Closed upstream on 2026-09-20 by bjarneo via an automated message, as a duplicate of #6915 (R-1851). 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

Cloned bar option fails to load (required props), and stock-bar fallback never engages (errorString ReferenceError)revision 1 · captured 2026-10-04 12:10 UTC via poll

What happened

Cloning the bar with omarchy plugin clone omarchy.bar and switching to the clone (sets bar.id to hk.bar in shell.json) kills the bar entirely — no bar surface at all (hyprctl layers shows only omarchy-background, no omarchy-bar). Reverting bar.id to stock restores it.

Two compounding bugs, both visible in the quickshell log:

1. A cloned bar can never instantiate: `required` props vs `Loader.source`

shell/shell.qml loads non-default bars via pluginBarLoader with source: <file url> (async). A URL-loaded component cannot receive initial property values, so the required property declarations in shell/plugins/bar/Bar.qml always fail:

ofile:///home/hk/.config/omarchy/plugins/hk.bar/Bar.qml[15:3]: Required property omarchyPath was not initialized
mfile:///home/hk/.config/omarchy/plugins/hk.bar/Bar.qml[22:3]: Required property barConfig was not initialized
ufile:///home/hk/.config/omarchy/plugins/hk.bar/Bar.qml[17:3]: Required property barWidgetRegistry was not initialized

configureBar() sets these on onLoaded — i.e. after instantiation — which is too late for required. (I verified even an unmodified pristine clone fails identically, so this is not caused by edits to the clone.)

2. The load-failure fallback itself throws, so the stock bar never comes back

pluginBarLoader.onStatusChanged (shell/shell.qml:256):

var detail = errorString && errorString() ? errorString() : ""

Loader has no errorString in scope here, so this throws:

>@shell.qml[256:-1]: ReferenceError: errorString is not defined

shell.failedBarId is never set, activeBarId keeps pointing at the broken clone, defaultBarLoader stays inactive — end state is no bar until the user manually reverts bar.id. The log also shows closelayer>>omarchy-bar with no re-open.

Expected

  • Either bar-option loading supports cloned bars (defaults + post-load injection already exists in configureBar), or omarchy plugin clone omarchy.bar should refuse/warn for kind bar.
  • At minimum, the Loader.Error handler must not throw, so a broken bar option falls back to omarchy.bar as the warning message claims.

Steps to reproduce

  1. omarchy plugin clone omarchy.bar (switches bar.id to <user>.bar)
  2. Observe: bar disappears; hyprctl layers -j has no omarchy-bar namespace
  3. Quickshell log shows the three Required property ... was not initialized errors + the shell.qml[256] ReferenceError
  4. Reverting bar.id in ~/.config/omarchy/shell.json restores the stock bar

System details

  • Omarchy: 4.0.2-1 (omarchy version)
  • Hyprland: 0.56.2
  • CPU: Intel Core i5-6300U; GPU: Intel HD Graphics 520 (Skylake-U GT2)
  • Note: this build has no omarchy debug command (Unknown Omarchy command), so no debug-log URL; happy to provide the quickshell log excerpt on request.
View raw text
## What happened

Cloning the bar with `omarchy plugin clone omarchy.bar` and switching to the clone (sets `bar.id` to `hk.bar` in `shell.json`) kills the bar entirely — no bar surface at all (`hyprctl layers` shows only `omarchy-background`, no `omarchy-bar`). Reverting `bar.id` to stock restores it.

Two compounding bugs, both visible in the quickshell log:

**1. A cloned bar can never instantiate: `required` props vs `Loader.source`**

`shell/shell.qml` loads non-default bars via `pluginBarLoader` with `source: <file url>` (async). A URL-loaded component cannot receive initial property values, so the `required property` declarations in `shell/plugins/bar/Bar.qml` always fail:

```
ofile:///home/hk/.config/omarchy/plugins/hk.bar/Bar.qml[15:3]: Required property omarchyPath was not initialized
mfile:///home/hk/.config/omarchy/plugins/hk.bar/Bar.qml[22:3]: Required property barConfig was not initialized
ufile:///home/hk/.config/omarchy/plugins/hk.bar/Bar.qml[17:3]: Required property barWidgetRegistry was not initialized
```

`configureBar()` sets these on `onLoaded` — i.e. after instantiation — which is too late for `required`. (I verified even an unmodified pristine clone fails identically, so this is not caused by edits to the clone.)

**2. The load-failure fallback itself throws, so the stock bar never comes back**

`pluginBarLoader.onStatusChanged` (`shell/shell.qml:256`):

```qml
var detail = errorString && errorString() ? errorString() : ""
```

`Loader` has no `errorString` in scope here, so this throws:

```
>@shell.qml[256:-1]: ReferenceError: errorString is not defined
```

`shell.failedBarId` is never set, `activeBarId` keeps pointing at the broken clone, `defaultBarLoader` stays inactive — end state is no bar until the user manually reverts `bar.id`. The log also shows `closelayer>>omarchy-bar` with no re-open.

## Expected

- Either bar-option loading supports cloned bars (defaults + post-load injection already exists in `configureBar`), or `omarchy plugin clone omarchy.bar` should refuse/warn for kind `bar`.
- At minimum, the `Loader.Error` handler must not throw, so a broken bar option falls back to `omarchy.bar` as the warning message claims.

## Steps to reproduce

1. `omarchy plugin clone omarchy.bar` (switches `bar.id` to `<user>.bar`)
2. Observe: bar disappears; `hyprctl layers -j` has no `omarchy-bar` namespace
3. Quickshell log shows the three `Required property ... was not initialized` errors + the `shell.qml[256]` ReferenceError
4. Reverting `bar.id` in `~/.config/omarchy/shell.json` restores the stock bar

## System details

- Omarchy: 4.0.2-1 (`omarchy version`)
- Hyprland: 0.56.2
- CPU: Intel Core i5-6300U; GPU: Intel HD Graphics 520 (Skylake-U GT2)
- Note: this build has no `omarchy debug` command (`Unknown Omarchy command`), so no debug-log URL; happy to provide the quickshell log excerpt on request.

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.