Skip to main content
otter-launcher is a centered application search overlay built on the shared Otter UI stack. It is an alternative to fuzzel, rofi, or wofi.

Usage

Bind it to a compositor hotkey, for example Super+D:
The launcher exits after you launch an item or press Escape. A socket prevents duplicate overlays. Run it again to close an open launcher.

Launcher extensions

Extensions appear above app matches: File and grep modes talk to the otter-search daemon over its runtime socket. Start that daemon first. Session autostart is enough. Queries are debounced so typing does not flood the daemon. Selecting a path opens it with xdg-open (or a matching handler).

Lua providers

Launcher plugins are Lua directories containing plugin.toml and init.lua. Compiled .so plugins are not supported. The manifest must declare provides = ["launcher"]. Enable providers and review their capability grants in otter-settings Plugins. See Plugins. Providers can return app-mode results or extend calculator, emoji, clipboard, file, and grep modes. Changes reload while the launcher is open. User plugins under $XDG_DATA_HOME/otter-shell/plugins (default ~/.local/share/otter-shell/plugins) override system plugins with the same directory name. The bundled calc, emoji, clip, and search Lua providers are off by default because the native extensions already supply those results. Enable them explicitly in plugins.conf if you want them; enabling both paths can duplicate results. snippet-provider also defaults off. Other custom providers default on unless plugins.conf disables them.

Keyboard shortcuts

During IME composition, Escape and Enter go to the IME.

Configuration

Config: ~/.config/otter-shell/otter-launcher.conf. Created on first run.
Size, colors, and placeholder text: otter-settings, Launcher tab.
Most color fields inherit from theme.conf when omitted.

Terminal detection

For .desktop entries with Terminal=true, the launcher picks a terminal:
  1. $TERMINAL environment variable
  2. Probes $PATH for xdg-terminal-exec, foot, otter-term, ghostty, kitty, alacritty, and others
Each terminal uses its correct exec flag (-e, --, etc.).