Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Tmux: how do I bind function keys to commands?

Tags:

tmux

How do I bind a function key (e.g. F1, which generates ESC O P) to a tmux command (e.g. "next window", ctrl-B n)?

Context: ssh running on mac into tmux session on linux. I'm pressing fn-F1 on the mac keyboard to generate the ESC O P.

like image 296
Mark Harrison Avatar asked Aug 16 '16 05:08

Mark Harrison


People also ask

What are key bindings?

Noun. key binding (plural key bindings) (computing) A key, or key combination, which, when pressed, causes something to happen. I changed the key binding for pause to the Escape key.

What is prefix key in tmux?

By default, tmux sets the prefix key as Ctrl + b.

How use tmux command in Linux?

Tmux is an application that enables a Linux user to have his session of terminal windows into one window. Each window can be split into panes. The default key combination for Tmux is ctrl+b. After that, another character has to be pressed to obtain an effect.


1 Answers

From the KEY BINDINGS section of man tmux:

tmux allows a command to be bound to most keys, with or without a prefix key. 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 F12, Home, IC (Insert), NPage/PageDown/PgDn, PPage/PageUp/PgUp, Space, and Tab.


bind-key [-cnr] [-t mode-table] [-T key-table] key command [arguments] (alias: bind)

Bind key key to command. Keys are bound in a key table. By default (without -T), the key is bound in the prefix key table. This table is used for keys pressed after the prefix key (for example, by default ‘c’ is bound to new-window in the prefix table, so ‘C-b c’ creates a new window). The root table is used for keys pressed without the prefix key: binding ‘c’ to new-window in the root table (not recommended) means a plain ‘c’ will create a new window. -n is an alias for -T root. Keys may also be bound in custom key tables and the switch-client -T command used to switch to them from a key binding. The -r flag indicates this key may repeat, see the repeat-time option.

Therefore, bind-key -n F1 next-window would allow you to hit fn-F1 on your macbook to switch to the next window in your tmux session.

like image 118
Alex Torok Avatar answered Sep 22 '22 07:09

Alex Torok