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

omarchy plugin clone omarchy.bar produces no visible bar panel

Reported by rjltrevisan · filed Sep 1, 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

omarchy plugin clone omarchy.bar produces no visible bar panelrevision 1 · captured 2026-10-04 12:03 UTC via poll

What happened

Cloning the built-in bar-kind plugin (omarchy plugin clone omarchy.bar --edit, or --edit omitted — same result) and activating the clone via shell.json's bar.id results in no bar panel appearing at all — not even the original bar's geometry, just nothing. This reproduces with a byte-identical, completely unmodified clone, so it isn't specific to editing the clone's Bar.qml.

Expected

The cloned bar should render identically to the built-in one (that's the entire point of omarchy plugin clone <kind:bar id> — it's the documented, sanctioned way to customize the bar).

Steps to reproduce

omarchy plugin clone omarchy.bar
# -> "Cloned omarchy.bar to ~/.config/omarchy/plugins/<user>.bar and switched to <user>.bar"
omarchy restart shell

Then check for the bar's layer-shell surface:

hyprctl layers -j | jq '.[].levels | .. | objects | select(.namespace? == "omarchy-bar")'

Result: empty — no omarchy-bar namespace surface exists on any monitor, even though omarchy plugin list correctly shows the clone as the sole enabled bar-kind plugin and the built-in one as disabled. hyprctl monitors -j also confirms the reserved exclusion zone stays [0, 0, 0, 0] (no space reserved for the bar).

Reverting shell.json's bar.id back to omarchy.bar (with the clone still present but inactive) immediately restores the bar with correct geometry — confirming the built-in bar and the shell's plugin-loading machinery are otherwise fine, and the problem is specific to the "clone-and-activate" path for kind: bar plugins.

Diagnostics

journalctl --user -b around the reload shows the clone's Bar.qml root item receiving its required properties as expected (omarchyPath, barWidgetRegistry, barConfig — transient "not initialized" warnings during the reload itself, same as seen on every hot-reload), but also this, which looks like the actual smoking gun:

WARN scene: QML IpcHandler at @plugins/bar/Bar.qml[955:3]: Handler was registered but will not be used because another handler is registered for target omarchy.bar

This says the built-in @plugins/bar/Bar.qml is still being instantiated (its IpcHandler { target: "omarchy.bar" } registers) even while omarchy plugin list reports it as disabled and the clone as the only enabled bar-kind plugin. It looks like the plugin registry may preload/cache the first-party bar kind's QML component regardless of enabled state, and something about that collides with the clone taking over the kind: bar slot, leaving neither panel actually mapped.

No QML parse/type errors are logged for the clone's file — the file loads and evaluates without exception, just never produces a mapped PanelWindow.

omarchy-shell shell rescanPlugins does not fix it; a full omarchy restart shell does not fix it either.

System details

  • omarchy version: 4.0.2-1
  • quickshell: 0.3.1-1
  • qt6-declarative: 6.11.2-1
  • Hyprland: 0.56.2 (v0.56.2, commit efb50993780079460b0cbed1363e2166a2de1d9f)
  • Kernel: 7.1.9-arch1-2
  • Bar config: position: "left" (vertical bar), single laptop panel monitor (eDP-1, 1366x768)

(Note: omarchy debug --no-sudo --print from the docs is not a recognized command on this omarchy version — omarchy commands --all doesn't list a debug group — so I couldn't attach that log; happy to provide anything else needed.)

View raw text
## What happened

Cloning the built-in `bar`-kind plugin (`omarchy plugin clone omarchy.bar --edit`, or `--edit` omitted — same result) and activating the clone via `shell.json`'s `bar.id` results in **no bar panel appearing at all** — not even the original bar's geometry, just nothing. This reproduces with a byte-identical, completely unmodified clone, so it isn't specific to editing the clone's `Bar.qml`.

## Expected

The cloned bar should render identically to the built-in one (that's the entire point of `omarchy plugin clone <kind:bar id>` — it's the documented, sanctioned way to customize the bar).

## Steps to reproduce

```bash
omarchy plugin clone omarchy.bar
# -> "Cloned omarchy.bar to ~/.config/omarchy/plugins/<user>.bar and switched to <user>.bar"
omarchy restart shell
```

Then check for the bar's layer-shell surface:

```bash
hyprctl layers -j | jq '.[].levels | .. | objects | select(.namespace? == "omarchy-bar")'
```

Result: empty — no `omarchy-bar` namespace surface exists on any monitor, even though `omarchy plugin list` correctly shows the clone as the sole `enabled` bar-kind plugin and the built-in one as `disabled`. `hyprctl monitors -j` also confirms the reserved exclusion zone stays `[0, 0, 0, 0]` (no space reserved for the bar).

Reverting `shell.json`'s `bar.id` back to `omarchy.bar` (with the clone still present but inactive) immediately restores the bar with correct geometry — confirming the built-in bar and the shell's plugin-loading machinery are otherwise fine, and the problem is specific to the "clone-and-activate" path for `kind: bar` plugins.

## Diagnostics

`journalctl --user -b` around the reload shows the clone's `Bar.qml` root item receiving its required properties as expected (`omarchyPath`, `barWidgetRegistry`, `barConfig` — transient "not initialized" warnings during the reload itself, same as seen on every hot-reload), but also this, which looks like the actual smoking gun:

```
WARN scene: QML IpcHandler at @plugins/bar/Bar.qml[955:3]: Handler was registered but will not be used because another handler is registered for target omarchy.bar
```

This says the **built-in** `@plugins/bar/Bar.qml` is still being instantiated (its `IpcHandler { target: "omarchy.bar" }` registers) even while `omarchy plugin list` reports it as `disabled` and the clone as the only enabled `bar`-kind plugin. It looks like the plugin registry may preload/cache the first-party `bar` kind's QML component regardless of enabled state, and something about that collides with the clone taking over the `kind: bar` slot, leaving neither panel actually mapped.

No QML parse/type errors are logged for the clone's file — the file loads and evaluates without exception, just never produces a mapped `PanelWindow`.

`omarchy-shell shell rescanPlugins` does not fix it; a full `omarchy restart shell` does not fix it either.

## System details

- `omarchy version`: 4.0.2-1
- `quickshell`: 0.3.1-1
- `qt6-declarative`: 6.11.2-1
- Hyprland: 0.56.2 (v0.56.2, commit efb50993780079460b0cbed1363e2166a2de1d9f)
- Kernel: `7.1.9-arch1-2`
- Bar config: `position: "left"` (vertical bar), single laptop panel monitor (eDP-1, 1366x768)

(Note: `omarchy debug --no-sudo --print` from the docs is not a recognized command on this `omarchy` version — `omarchy commands --all` doesn't list a `debug` group — so I couldn't attach that log; happy to provide anything else needed.)

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.