tmux send-keys syntax

Tmux

Tmux Problem Overview


On the tmux man page I found no reference to how it names keys.

For example, to send ctrl + r to tmux you would do:

tmux send-keys C-r

and to send the esc key you do

tmux send-keys Escape

Is there a list which maps keyboard keys to how tmux sendkeys expects you to name them? I have a feeling that I missed a memo that its using some-long-forgotten-program's syntax for convenience.

Note, this is nothing to do with key bindings.

Tmux Solutions


Solution 1 - Tmux

The key names used by send-keys are the same ones that bind-key uses.
From the Key Bindings section of the tmux manpage:

> When specifying keys, most represent themselves (for example ‘A’ to ‘Z’). Ctrl keys may be prefixed with ‘C-’ or ‘^’, and Alt (meta) with ‘M-’. In addition, the following special key names are accepted: Up, Down, Left, Right, BSpace, BTab, DC (Delete), End, Enter, Escape, F1 to F20, Home, IC (Insert), NPage/PageDown/PgDn, PPage/PageUp/PgUp, Space, and Tab.

Although they are not listed in the man page, there are also special names for keypad-specific keys: KP0 through KP9, KP/, KP*, KP-, KP+, KP., and KPEnter.

Several of the more cryptic key names (BTab, IC, DC, NPage, PPage) probably come from the terminfo library.

Emacs shares the convention of using C- and M- prefixes to indicate modifiers (I would not be surprised if there were earlier uses of this convention).

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionxxjjnnView Question on Stackoverflow
Solution 1 - TmuxChris JohnsenView Answer on Stackoverflow