Commit Graph

28 Commits

Author SHA1 Message Date
nicm
69e0b8326a Support UTF-8 key bindings by expanding the key type from int to
uint64_t and converting UTF-8 to Unicode on input and the reverse on
output. (This allows key bindings, there are still omissions - the
largest being that the various prompts do not accept UTF-8.)
2015-11-12 11:05:34 +00:00
nicm
b85be36d1c Handle unknown keys more gracefully, return a string instead of NULL. 2015-10-26 22:03:04 +00:00
nicm
bf635e7741 Rewrite of tmux mouse support which was a mess. Instead of having
options for "mouse-this" and "mouse-that", mouse events may be bound as
keys and there is one option "mouse" that turns on mouse support
entirely (set -g mouse on).

See the new MOUSE SUPPORT section of the man page for description of the
key names and new flags (-t= to specify the pane or window under mouse
as a target, and send-keys -M to pass through a mouse event).

The default builtin bindings for the mouse are:

    bind -n   MouseDown1Pane select-pane -t=; send-keys -M
    bind -n MouseDown1Status select-window -t=
    bind -n   MouseDrag1Pane copy-mode -M
    bind -n MouseDrag1Border resize-pane -M

To get the effect of turning mode-mouse off, do:

    unbind -n MouseDrag1Pane
    unbind -temacs-copy MouseDrag1Pane

The old mouse options are now gone, set-option -q may be used to
suppress warnings if mixing configuration files.
2015-04-19 21:34:21 +00:00
nicm
2056a9ef9e Drop explicit support for F13-F20 and change to match the xterm terminfo
entry:

        F13-F24 are S-F1 to S-F12
        F25-F36 are C-F1 to C-F12
        F37-F48 are C-S-F1 to C-S-F12
        F49-F60 are M-F1 to M-F12
and     F61-F63 are M-S-F1 to M-S-F3

This should be no difference for applications inside tmux, but means
that any key binding for F13 will need to be replaced by S-F1 and so on.
2014-07-21 10:25:48 +00:00
Nicholas Marriott
306a3b8d80 In terminals with XT, turn on modifyOtherKeys=1 with the escape sequence
and handle the most common set. Pass them through if xterm-keys is on.
2013-03-22 10:30:04 +00:00
Nicholas Marriott
178a20718c Accept hex values as keys, needed for send-keys, based on a diff from
George Nachman.
2012-03-04 20:40:54 +00:00
Nicholas Marriott
535286c05a Drop the ability to have a list of keys in the prefix in favour of two
separate options, prefix and prefix2. This simplifies the code and gets
rid the data options type which was only used for this one option.

Also add a -2 flag to send-prefix to send the secondary prefix key,
fixing a cause of minor irritation.

People who want three prefix keys are out of luck :-).
2012-01-21 08:40:09 +00:00
Nicholas Marriott
e3225bc4e3 Alias NPage/PPage as PageDown/PgDn/PageUp/PgUp to reduce occasional
confusion.
2011-10-23 10:19:26 +00:00
Nicholas Marriott
3872e24847 Allow top-bit-set characters to be used for key bindings, from Tiago
Cunha.
2011-01-23 11:04:25 +00:00
Nicholas Marriott
f833b885a1 Last few tables that should be const. 2011-01-01 03:43:20 +00:00
Nicholas Marriott
dcc100f165 Use a macro-based mask for obtaining a key or modifier-set from the
combination. Display C-@, etc, as C-Space, in list-keys. By Micah Cowan.
2010-06-06 19:00:13 +00:00
Nicholas Marriott
b88ec14f0e Fix binding of C-Space/C-@, from Micah Cowan. 2010-06-05 15:51:53 +00:00
Ryan McBride
c919139433 Make C-] and other punctuation-based control key combinations work again.
ok nicm
2010-05-03 09:38:03 +00:00
Nicholas Marriott
6769115df2 When converting A-Z into a control character, want to subtract 64 not
65... whoops.
2010-04-23 14:27:04 +00:00
Nicholas Marriott
3ae1b82695 Rewrite key string conversions to be readable and to work properly for
multiple modifiers.
2010-04-21 21:17:33 +00:00
Nicholas Marriott
d5d0a36f66 Permit S- prefix on keys for shift. Relatively few terminals support this
(basically xterm only) and even fewer have them in terminfo (kLFT2 and kRIT2).
2010-01-14 21:53:40 +00:00
Nicholas Marriott
15a64b805e Massive spaces->tabs and trailing whitespace cleanup, hopefully for the last
time now I've configured emacs to make them displayed in really annoying
colours...
2009-12-03 22:50:09 +00:00
Nicholas Marriott
1acf066fb9 Make types clearer and lint happier. 2009-11-26 22:56:59 +00:00
Nicholas Marriott
38f64b3da3 Lookup key as a named key (eg 'Space') before checking for single character
keys, makes C-Space/M-Space etc resolve to the correct key code.
2009-11-10 17:24:43 +00:00
Nicholas Marriott
db4452d307 Rename keypad keys to something more useful. 2009-10-26 13:13:33 +00:00
Nicholas Marriott
82efcc32ec Accept ^? for backspace as well as BSpace. 2009-10-06 07:32:26 +00:00
Nicholas Marriott
205857b232 Add a key string for space ("Space") and document the names, suggested by
guenther@. Also document how to bind " and ', suggested by miod@.
2009-10-04 08:50:05 +00:00
Nicholas Marriott
9e5d585ba4 Accept and print "Enter" and "Escape" for keys rather than C-m and C-[. 2009-07-28 09:18:01 +00:00
Nicholas Marriott
639fbe0392 Detect backspace by looking at termios VERASE and translate it into \177 (which
matches screen's behaviour if not its termcap/terminfo entry). The terminfo kbs
cap is often wrong or missing so it can't be used, and just assuming \177 may
be wrong.
2009-07-26 21:42:08 +00:00
Nicholas Marriott
1d1ea681f0 Accept lowercase c- and m- prefix as well as C- and M-. 2009-07-24 14:57:22 +00:00
Nicholas Marriott
725938fb85 Tidy up keys: use an enum for the key codes, and remove the macros which just
wrap flag sets/clears/tests.
2009-07-21 17:57:29 +00:00
Nicholas Marriott
6910458a92 Add backspace key to named keys. 2009-07-14 06:56:30 +00:00
Nicholas Marriott
35876eaab9 Import tmux, a terminal multiplexor allowing (among other things) a single
terminal to be switched between several different windows and programs
displayed on one terminal be detached from one terminal and moved to another.

ok deraadt pirofti
2009-06-01 22:58:49 +00:00