Skip to main content
Otter Shell can load extra bar widgets and launcher result providers as .so plugins. The otter-shell metapackage already installs the examples (otter-shell-plugins) and the scaffold CLI (otter-plugin-factory). A loaded plugin is native code inside the bar or launcher. Only enable plugins you installed and trust.

Enable a plugin

Open otter-settings and go to the Plugins tab. Each installed plugin has a toggle. That writes ~/.config/otter-shell/plugins.conf:
Bar and launcher read this file before loading plugins. Most plugins stay enabled when their key is missing. snippet-provider is opt-in and stays off until you set snippet-provider_enabled = true.

Put it on the bar

Layout names always use plugin:<id>. The id is the id field in plugin.conf, not the package name. In otter-settings, drag an enabled plugin chip into the bar layout. Or edit otter-bar.conf:
See otter-bar.

Example plugins

These land under /usr/lib/otter-shell/plugins/<id>/ with otter-shell-plugins:

Install path

Hosts look for plugins in this order. First match per id wins:
  1. OTTER_PLUGIN_PATH (colon-separated roots)
  2. $XDG_DATA_HOME/otter-shell/plugins
  3. ~/.local/share/otter-shell/plugins
  4. /usr/lib/otter-shell/plugins
  5. /usr/share/otter-shell/plugins
Each plugin directory needs plugin.conf and the matching .so. To try a local build without installing:
You can also install the examples on their own:

Trust

Prefer the packaged examples, or plugins you built yourself. Writing your own: Plugins for developers.