mirror of
https://github.com/omacom/omarchy.git
synced 2026-09-28 14:23:08 +08:00
Every plugin change handed the panel Instantiator a fresh array, which rebuilds every panel. The panels were rebuilt four times in the first 700ms of startup, each rebuild starting a new asynchronous load of every keepLoaded panel while the last was still in flight. Under load two OSDs could run at once, each registering the osd IPC handler: the runtime smoke test's intermittent "another handler is registered for target osd". The entries now live in a ListModel synced in place. A panel whose plugin still loads the same way keeps its loader, so startup adds each panel once, and a full plugin reload still clears the model to rebuild from fresh code. Under a six-core busy load the smoke test hit the duplicate in 1 of 5 runs on quattro and in none of 10 with this change. Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Omarchy shell
The Omarchy desktop runs in one long-lived Quickshell process. Its bar, panels, overlays, menus, and services are plugins hosted by shell.qml.
- Shell reference — plugin manifests, IPC, configuration, and shared UI contracts.
- Plugin user guide — install, configure, and clone plugins.
- First-party plugins — bundled plugin IDs, kinds, and entry points.
- Shell development guide — conventions for changing the desktop.
- Theming reference — theme tokens, templates, and generated configuration.