Your fingers
know the way.
dotstate supports three keymap presets — Standard, Vim, and Emacs — plus per-action overrides. Press ? in the TUI at any time to see the full key binding for the current view.
Pick a preset
In ~/.config/dotstate/config.toml:
[keymap]
preset = "vim" # "standard" | "vim" | "emacs" Presets at a glance
| Action | Standard | Vim | Emacs |
|---|---|---|---|
| Move down | ↓ | j | Ctrl+N |
| Move up | ↑ | k | Ctrl+P |
| Move right / next pane | → | l | Ctrl+F |
| Move left / prev pane | ← | h | Ctrl+B |
| Confirm | Enter | Enter | Enter |
| Cancel / back | Esc | Esc | Ctrl+G |
| Quit | q | q | Ctrl+X Ctrl+C |
Global keys
These work in every preset and every view:
| ? | Toggle contextual help overlay |
| / | Search the current list |
| r | Reload from disk |
| q | Quit (also Ctrl+C) |
Reach Settings from the main menu — there's no global hotkey for it.
Custom overrides
Any preset can be partially overridden. Specify the preset, then redefine only the actions you want to change:
[keymap]
preset = "vim"
[keymap.bindings]
# keep vim's hjkl, but rebind quit to Ctrl+Q
quit = "ctrl+q"
# multiple keys can bind to the same action
toggle_help = ["?", "F1"] Supported key syntax
- Single characters:
"j","G","/" - Named keys:
"enter","esc","tab","up","down","home","end","pgup","pgdn","space","backspace","delete","F1"–"F12" - Modifiers:
ctrl+,alt+,shift+— combine with a character or named key - Lists: pass an array of keys to bind several at once
See what's bound right now
Inside the TUI, press ?. The help overlay shows every binding active in the current view, adjusted for your preset and overrides.
Next
Pair keymaps with a matching theme, or see the CLI reference.