Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Keybindings

siggy uses vim-style modal editing with two modes: Insert (default) and Normal. All keybindings are configurable via profiles and per-key overrides.

Profiles

Three built-in profiles are available:

ProfileDescription
DefaultVim-style modal editing (Normal / Insert modes)
EmacsNo modal concept; Ctrl-based shortcuts in Insert mode
MinimalArrow-key centric; F-key shortcuts for actions

Set the profile in your config file:

keybinding_profile = "Default"

Or switch profiles live in the app via /keybindings or /settings > Keybindings.

Customizing keybindings

Per-key overrides

Create ~/.config/siggy/keybindings.toml to override individual keys on top of your active profile:

[global]
quit = "ctrl+q"

[normal]
scroll_up = "ctrl+j"
react = "ctrl+r"

[insert]
send_message = "ctrl+enter"

Custom profiles

Create full profiles in ~/.config/siggy/keybindings/myprofile.toml:

name = "My Custom"

[global]
quit = "ctrl+c"
next_conversation = "tab"

[normal]
scroll_up = "k"
scroll_down = "j"

[insert]
exit_insert = "esc"
send_message = "enter"
insert_newline = ["shift+enter", "alt+enter"]

Arrays are supported for binding multiple keys to the same action.

In-app rebinding

Open the keybindings overlay with /keybindings (alias /kb). Navigate actions with j/k, press Enter to capture a new key, Backspace to reset to profile default. Changes are saved automatically.

Default keybindings

The tables below show the Default profile bindings.

Global (both modes)

KeyAction
Ctrl+CQuit
Tab / Shift+TabNext / previous conversation
PgUp / PgDnScroll messages (5 lines)
Ctrl+Left / Ctrl+RightResize sidebar

Normal mode

Press Esc to enter Normal mode. The cursor stops blinking and the mode indicator changes in the status bar.

Scrolling

KeyAction
j / kScroll down / up 1 line
J / KJump to previous / next message
Ctrl+D / Ctrl+UScroll down / up half page
g / GScroll to top / bottom

Actions

KeyAction
yCopy message body to clipboard
YCopy full line ([HH:MM] <sender> body) to clipboard
EnterOpen action menu on focused message
rOpen reaction picker on focused message
qReply to focused message (quote reply)
eEdit own outgoing message
fForward focused message
dDelete focused message
pPin / unpin focused message
nJump to next search result
NJump to previous search result
@Mention autocomplete (in Insert mode)

Cursor movement

KeyAction
h / lMove cursor left / right
w / bWord forward / back
0 / $Start / end of line

Editing

KeyAction
xDelete character at cursor
DDelete from cursor to end of line

Entering Insert mode

KeyAction
iInsert at cursor
aInsert after cursor
IInsert at start of line
AInsert at end of line
oInsert (clear buffer first)
/Insert with / pre-typed (for commands)

Insert mode (default)

Insert mode is the default on startup. You can type messages and commands directly.

KeyAction
EscSwitch to Normal mode
EnterSend message or execute command
Alt+Enter / Shift+EnterInsert newline (multi-line input)
Ctrl+WDelete word back
Backspace / DeleteDelete characters
Up / DownRecall input history
Left / RightMove cursor
Home / EndJump to start / end of line

Mouse

Mouse support is enabled by default (toggle in /settings).

ActionEffect
Click sidebar conversationSwitch to that conversation
Scroll wheel in chatScroll messages up/down
Click in input barPosition cursor
Scroll wheel in overlaysNavigate list items

Help overlay

Help overlay

Press /help (alias /h) to see all keybindings and commands at a glance. The help overlay dynamically reflects your active keybinding profile.

Input history

In Insert mode, press Up and Down to cycle through previously sent messages and commands. History is per-session (not persisted to disk). Your current draft is preserved while browsing history.