> ## Documentation Index
> Fetch the complete documentation index at: https://docs.otter-shell.org/llms.txt
> Use this file to discover all available pages before exploring further.

# otter-keybindhelp

> One-shot searchable shortcut overlay for Niri, Hyprland, and Mango.

`otter-keybindhelp` reads your compositor config and shows the shortcuts in a centered overlay. Commands get readable action names. Key modes and submaps stay as contexts. Part of the `otter-shell` metapackage.

Do not autostart it. Bind a hotkey, or launch **Otter Keyboard Shortcuts** from [otter-launcher](/desktop/otter-launcher). It exits when you dismiss it.

Niri, Hyprland, and Mango are detected automatically. Override with flags if detection is wrong, or if the config is not in the default path.

## Usage

```bash theme={null}
otter-keybindhelp
```

```bash theme={null}
otter-keybindhelp --compositor niri --config ~/.config/niri/config.kdl
otter-keybindhelp --compositor hyprland --config ~/.config/hypr/hyprland.lua
otter-keybindhelp --compositor mango --config ~/.config/mango/config.conf
otter-keybindhelp --dump
```

| Flag                                 | Meaning                                                                   |
| ------------------------------------ | ------------------------------------------------------------------------- |
| `--compositor niri\|hyprland\|mango` | Skip automatic detection                                                  |
| `--config PATH`                      | Read a non-default root config                                            |
| `--dump`                             | Print normalized shortcuts to the terminal instead of opening the overlay |
| `-h`, `--help`                       | Usage                                                                     |

`--dump` is useful when you want to check what it parsed without a GUI.

## Suggested binding

`Super+Shift+/` (Slash):

```kdl theme={null}
# Niri
Mod+Shift+Slash { spawn "otter-keybindhelp"; }
```

```lua theme={null}
-- Hyprland 0.55+ Lua
hl.bind("SUPER + SHIFT + Slash", hl.dsp.exec_cmd("otter-keybindhelp"), {
    description = "Show keyboard shortcuts",
})
```

```ini theme={null}
# Mango
bind=SUPER+SHIFT,slash,spawn,otter-keybindhelp
```

## Keyboard

Type to search. Backspace or Ctrl+Backspace edits. Ctrl+U clears. Tab / Shift+Tab changes context. Page Up / Page Down pages. Escape closes.

Mouse wheel pages. Click outside or right-click to close.

## What it reads

* **Niri:** `binds {}` blocks, `hotkey-overlay-title`, and recursive `include` files
* **Hyprland:** current Lua `hl.bind()` / `require()`, plus legacy `bind...=` / `source=` configs
* **Mango:** keyboard, mouse, axis, gesture, and switch binds, with `keymode` contexts and recursive `source` files

Each file is capped at 1 MiB, include depth at 32, and total bindings at 2048.

## Dependencies

* Wayland compositor with `zwlr_layer_shell_v1`
* Niri, Hyprland, or Mango (other compositors are not parsed)
