Install Elsewhen, the world clock plugin, by default

Elsewhen (omacom.elsewhen) arrives as the elsewhen package under
/usr/share/omarchy/plugins, the packaged root the shell scans between its
bundled plugins and the user's. It opens the right section of the default
bar, just before the tray, and a migration installs the package, writes the
widget into a customized shell.json in the same spot, and retires a pristine
pre-package clone of the upstream repo that the package now shadows.
This commit is contained in:
Spencer Bull committed 2026-09-17 21:41:01 -05:00
1 parent 9c5482c58d
commit 531c3e890f
10 files changed
+417 -3

No files matched your search

+14
View File
@@ -140,6 +140,19 @@ You can still drop a plugin in without git:
`barWidget.defaultSection`, or in the center when it is omitted, and can be
moved with `omarchy bar move`; a full bar replaces the one in use.
### Packaged plugins
Some default plugins ship as their own Arch package rather than in this
checkout: Elsewhen (`omacom.elsewhen`) is the `elsewhen` package. pacman installs such a plugin,
root-owned, at `/usr/share/omarchy/plugins/<plugin-id>/`, and
the shell scans that root between its bundled plugins and the user's. A
packaged `omarchy.*` id is trusted exactly like a bundled one; a packaged
plugin under any other id is treated like a user plugin. They update with
`omarchy update` and are removed with pacman, so `omarchy plugin update` and
`omarchy plugin remove` refuse them and name the package instead. A bundled
copy in `$OMARCHY_PATH/shell/plugins` wins over the packaged one, which is how
a packaged plugin is developed under `omarchy dev link`.
The lower-level IPC equivalents remain available via `omarchy-shell shell rescanPlugins`,
`omarchy-shell shell enablePlugin <id> '{}'`, and `omarchy-shell shell listPlugins`.
The `omarchy plugin` commands wrap those calls. `omarchy bar move` and
@@ -224,6 +237,7 @@ customization from the shipped defaults lives in it.
|-----------------------------------|----------------|--------------------------------------------------------|
| `~/.config/omarchy/shell.json` | the shell | full layout + per-entry settings + enabled plugin list |
| `~/.config/omarchy/plugins/<id>/` | user | drop-in third-party plugin source files |
| `/usr/share/omarchy/plugins/<id>/` | pacman | packaged plugins (e.g. `elsewhen`), updated by `omarchy update` |
The `config/omarchy/shell.json` default config describes the
fresh-install state. When the user has no `shell.json`, the shell uses
+5 -1
View File
@@ -9,7 +9,10 @@ First-party non-bar plugins are enabled unless listed in `disabledPlugins[]`;
at startup; other panels, overlays, and menus are loaded on demand.
User-installed plugins live alongside these conceptually but on disk under
`~/.config/omarchy/plugins/<plugin-id>/` rather than in this directory.
`~/.config/omarchy/plugins/<plugin-id>/` rather than in this directory. A few
default plugins arrive as their own package instead: pacman installs them at
`/usr/share/omarchy/plugins/<plugin-id>/`, where an `omarchy.*` id is trusted
like the plugins here, and a copy in this directory shadows the packaged one.
| Plugin | id | kinds | entry point |
|---------------|---------------------------|-------------------------|---------------------------------------|
@@ -28,6 +31,7 @@ User-installed plugins live alongside these conceptually but on disk under
| Power | `omarchy.power` | `bar-widget` | `panels/power/Panel.qml` |
| Tailscale | `omarchy.tailscale` | `bar-widget` | `panels/tailscale/Panel.qml` |
| Agents | `omarchy.agents` | `bar-widget` | `agents/Panel.qml` |
| Elsewhen | `omacom.elsewhen` | `bar-widget` | packaged: `elsewhen` installs `/usr/share/omarchy/plugins/omacom.elsewhen/` |
| Weather | `omarchy.weather` | `bar-widget` | `panels/weather/BarWidget.qml` |
| Media | `omarchy.media` | `service`, `bar-widget` | `services/media/Service.qml`, `services/media/BarWidget.qml` |
| Battery | `omarchy.battery` | `service` | `services/battery/Service.qml` |