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.
Plugin code under ~/.config/omarchy/plugins/ never hot-reloads: neither on save nor via rescanPlugins
Reported by kidskript3 · filed Sep 3, 2026Closed upstream on 2026-09-20 by bjarneo via an automated message, as a duplicate of #6981 (R-1835). 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
What happened
shell/README.md documents two ways for plugin code under~/.config/omarchy/plugins/ to take effect in the running shell:
Saving a file anywhere under~/.config/omarchy/plugins/reloads plugin code automatically;omarchy-shell shell rescanPluginsremains available to force a reload.
Neither works here. The panel keeps rendering the previous code untilomarchy restart shell.
The file watcher itself is fine — saving the file logs the reload:
DEBUG qml: Local plugin changed, reloading: <user>.monitor…and the plugin registry rescans afterwards (the usual service-ready and
handler-registration lines follow). The QML that is actually rendered does not
change.
Steps to reproduce
omarchy plugin clone omarchy.monitor- In
~/.config/omarchy/plugins/<user>.monitor/Panel.qml, change the panel
heading (line 611) from text: "Display" to text: "Display MARKER-A" and save.
3. Open the panel (SUPER + CTRL + D) — heading still reads Display.
4. omarchy-shell shell rescanPlugins, reopen — still Display.
5. omarchy restart shell, reopen — now reads Display MARKER-A.
Steps 3 and 4 are the bug; step 5 is the workaround.
Why this one bites harder than a stale heading
The same staleness applies to omarchy plugin clone itself. After cloning,
every tool reports the clone as the active plugin:
$ omarchy plugin list
omarchy.monitor disabled first-party bar-widget Display
<user>.monitor enabled third-party bar-widget My Display…while the shell goes on executing the built-in component. Editing the clone
appears to have no effect, and there is nothing in the UI or the CLI output
pointing at a restart. I spent a while re-checking a patch that had been
correct all along before a marker string showed me which copy was live.
Possible cause
Worth checking rather than a diagnosis — finishPluginReload() inshell/shell.qml:752 clears the component cache behind a feature test:
if (typeof Qt.clearComponentCache === "function") Qt.clearComponentCache()If Qt.clearComponentCache is not exposed in Quickshell's QML environment,
that test fails silently and pluginRegistry.rescan() re-instantiates the
components from cache — which matches the symptom exactly: the reload runs
end to end, and the old code survives it. ~/.cache/quickshell/qmlcache/ may
be worth a look in the same breath.
System
- Omarchy 4.0.2-1
- Hyprland 0.56.2
- Intel Core i7-12700H / NVIDIA RTX 3070 Ti Laptop GPU
Related
Found while patching the display panel locally for #10086.
View raw text
### What happened `shell/README.md` documents two ways for plugin code under `~/.config/omarchy/plugins/` to take effect in the running shell: > Saving a file anywhere under `~/.config/omarchy/plugins/` reloads plugin code > automatically; `omarchy-shell shell rescanPlugins` remains available to force a reload. Neither works here. The panel keeps rendering the previous code until `omarchy restart shell`. The file watcher itself is fine — saving the file logs the reload: ``` DEBUG qml: Local plugin changed, reloading: <user>.monitor ``` …and the plugin registry rescans afterwards (the usual `service-ready` and handler-registration lines follow). The QML that is actually rendered does not change. ### Steps to reproduce 1. `omarchy plugin clone omarchy.monitor` 2. In `~/.config/omarchy/plugins/<user>.monitor/Panel.qml`, change the panel heading (line 611) from `text: "Display"` to `text: "Display MARKER-A"` and save. 3. Open the panel (`SUPER + CTRL + D`) — heading still reads **Display**. 4. `omarchy-shell shell rescanPlugins`, reopen — still **Display**. 5. `omarchy restart shell`, reopen — now reads **Display MARKER-A**. Steps 3 and 4 are the bug; step 5 is the workaround. ### Why this one bites harder than a stale heading The same staleness applies to `omarchy plugin clone` itself. After cloning, every tool reports the clone as the active plugin: ``` $ omarchy plugin list omarchy.monitor disabled first-party bar-widget Display <user>.monitor enabled third-party bar-widget My Display ``` …while the shell goes on executing the built-in component. Editing the clone appears to have no effect, and there is nothing in the UI or the CLI output pointing at a restart. I spent a while re-checking a patch that had been correct all along before a marker string showed me which copy was live. ### Possible cause Worth checking rather than a diagnosis — `finishPluginReload()` in `shell/shell.qml:752` clears the component cache behind a feature test: ```qml if (typeof Qt.clearComponentCache === "function") Qt.clearComponentCache() ``` If `Qt.clearComponentCache` is not exposed in Quickshell's QML environment, that test fails silently and `pluginRegistry.rescan()` re-instantiates the components from cache — which matches the symptom exactly: the reload runs end to end, and the old code survives it. `~/.cache/quickshell/qmlcache/` may be worth a look in the same breath. ### System - Omarchy 4.0.2-1 - Hyprland 0.56.2 - Intel Core i7-12700H / NVIDIA RTX 3070 Ti Laptop GPU ### Related Found while patching the display panel locally for #10086.
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.