aboutsummaryrefslogtreecommitdiff
path: root/input-keys.c
Commit message (Collapse)AuthorAge
...
* | xterm-keys has been on by default for 5 years and all other modern terminalsNicholas Marriott2020-05-15
| | | | | | | | | | | | use these key sequences by default. Merge the code into the main tty and input tree processing (convering the latter to use a tree rather than a table at the same time) and make the option a no-op.
* | Merge branch 'obsd-master'Thomas Adam2020-04-07
|\|
| * Do not send mouse events if the program has not requested them.nicm2020-04-07
| |
* | Merge branch 'obsd-master'Thomas Adam2020-04-01
|\|
| * Support mouse in popups.nicm2020-04-01
| |
* | Merge branch 'obsd-master'Thomas Adam2020-03-19
|\|
| * Change input path so it doesn't require a pane.nicm2020-03-19
| |
* | Merge branch 'obsd-master'Thomas Adam2020-03-16
|\|
| * Send mouse down event immediately rather than waiting for double clicknicm2020-03-16
| | | | | | | | | | to finish which would now mean it was out of order. Reported by Mark Kelly.
* | Merge branch 'obsd-master'Thomas Adam2020-01-13
|\|
| * Treat plausible but invalid keys (like C-BSpace) as literal like anynicm2020-01-13
| | | | | | | | | | other unrecognised string passed to send-keys. Reported by Anthony Sottile in GitHub issue 2049.
* | Merge branch 'obsd-master'Thomas Adam2019-11-18
|\|
| * Keep modifiers on backspace when translating it.nicm2019-11-18
| |
* | Merge branch 'obsd-master'Thomas Adam2019-11-14
|\|
| * Add an option to set the key sent by backspace for those whose systemnicm2019-11-14
| | | | | | | | uses ^H rather than ^?. GitHub issue 1969.
* | Merge branch 'obsd-master'Thomas Adam2019-07-09
|\|
| * Add a -H flag to send-keys to send literal keys given as hex numbersnicm2019-07-09
| | | | | | | | | | | | (needed for control clients to send mouse sequences). Also add some format flags for UTF-8 and SGR mouse mode. Requested by Bradley Smith in GitHub issues 1832 and 1833.
| * Support for windows larger than visible on the attached client. This hasnicm2018-10-18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | been a limitation for a long time. There are two new options, window-size and default-size, and a new command, resize-window. The force-width and force-height options and the session_width and session_height formats have been removed. The new window-size option tells tmux how to work out the size of windows: largest means it picks the size of the largest session, smallest the smallest session (similar to the old behaviour) and manual means that it does not automatically resize windows. The default is currently largest but this may change. aggressive-resize modifies the choice of session for largest and smallest as it did before. If a window is in a session attached to a client that is too small, only part of the window is shown. tmux attempts to keep the cursor visible, so the part of the window displayed is changed as the cursor moves (with a small delay, to try and avoid excess redrawing when applications redraw status lines or similar that are not currently visible). The offset of the visible portion of the window is shown in status-right. Drawing windows which are larger than the client is not as efficient as those which fit, particularly when the cursor moves, so it is recommended to avoid using this on slow machines or networks (set window-size to smallest or manual). The resize-window command can be used to resize a window manually. If it is used, the window-size option is automatically set to manual for the window (undo this with "setw -u window-size"). resize-window works in a similar way to resize-pane (-U -D -L -R -x -y flags) but also has -a and -A flags. -a sets the window to the size of the smallest client (what it would be if window-size was smallest) and -A the largest. For the same behaviour as force-width or force-height, use resize-window -x or -y, and "setw -u window-size" to revert to automatic sizing.. If the global window-size option is set to manual, the default-size option is used for new windows. If -x or -y is used with new-session, that sets the default-size option for the new session. The maximum size of a window is 10000x10000. But expect applications to complain and much higher memory use if making a window excessively big. The minimum size is the size required for the current layout including borders. The refresh-client command can be used to pan around a window, -U -D -L -R moves up, down, left or right and -c returns to automatic cursor tracking. The position is reset when the current window is changed.
* | Bring back window_pane_visible to stop input going to panes which areNicholas Marriott2018-09-10
| | | | | | | | hidden by zoom.
* | Support for windows larger than the client.Nicholas Marriott2018-08-20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This adds two new options, window-size and default-size, and a new command, resize-window. The force-width and force-height options, and the session_width and session_height formats have been removed. The new window-size option tells tmux how to work out the size of windows: largest means it picks the size of the largest session, smallest the smallest session (similar to the old behaviour) and manual means that it does not automatically resize windows. aggressive-resize modifies the choice of session for largest and smallest as it did before. If a window is in a session attached to a client that is too small, only part of the window is shown. tmux attempts to keep the cursor visible, so the part of the window displayed is changed as the cursor moves (with a small delay, to try and avoid excess redrawing when applications redraw status lines or similar that are not currently visible). Drawing windows which are larger than the client is not as efficient as those which fit, particularly when the cursor moves, so it is recommended to avoid using this on slow machines or networks (set window-size to smallest or manual). The resize-window command can be used to resize a window manually. If it is used, the window-size option is automatically set to manual for the window (undo this with "setw -u window-size"). resize-window works in a similar way to resize-pane (-U -D -L -R -x -y flags) but also has -a and -A flags. -a sets the window to the size of the smallest client (what it would be if window-size was smallest) and -A the largest. For the same behaviour as force-width or force-height, use resize-width -x or -y. If the global window-size option is set to manual, the default-size option is used for new windows. If -x or -y is used with new-session, that sets the default-size option for the new session. The maximum size of a window is 10000x10000. But expect applications to complain and higher memory use if you make a window that big. The minimum size is the size required for the current layout including borders. This change allows some code improvements, most notably that since windows can now never be cropped, that code can be removed from the layout code, and since panes can now never be outside the size of the window, window_pane_visible can be removed.
* | Merge branch 'obsd-master'Thomas Adam2017-06-28
|\|
| * Apply the xterm key flag when needed for send-keys, fixes problemnicm2017-06-28
| | | | | | | | reported by Franky Spamschleuder.
* | Merge branch 'obsd-master'Thomas Adam2017-06-12
|\|
| * Add explicit keys for the bracketed paste sequences, both to avoid mixnicm2017-06-12
| | | | | | | | ups with other keys and to make logs clearer.
* | Merge branch 'obsd-master'Thomas Adam2017-05-09
|\| | | | | | | | | Conflicts: format.c
| * Up to now, tmux sees \033\033[OA as M-Up and since we turned onnicm2017-05-07
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | xterm-keys by default, generates \033[1;3A instead of \033\033[OA. Unfortunately this confuses vi, which doesn't understand xterm keys and now sees Escape+Up pressed within escape-time as Escape followed by A. The issue doesn't happen in xterm itself because it gets the keys from X and can distinguish between a genuine M-Up and Escape+Up. Because xterm can, tmux can too: xterm will give us \033[1;3A (that is, kUP3) for a real M-Up and \033\033OA for Escape+Up - in fact, we can be sure any \033 preceding an xterm key is a real Escape key press because Meta would be part of the xterm key instead of a separate \033. So change tmux to recognise both sequences as M-Up for its own purposes, but generate the xterm version of M-Up only if it originally received the xterm version from the terminal. This means we will return to sending \033\033OA instead of the xterm key for terminals that do not support xterm keys themselves, but there is no practical way around this because they do not allow us to distinguish between Escape+Up and M-Up. xterm style escape sequences are now the de facto standard for these keys in any case. Problem reported by jsing@ and subsequently by Cecile Tonglet in GitHub issue 907.
* | Merge branch 'obsd-master'Thomas Adam2017-02-01
|\|
| * Implement "all event" (1003) mouse mode but in a way that works. Thenicm2017-02-01
| | | | | | | | | | | | | | | | | | | | | | main issue is that if we have two panes, A with 1002 and B with 1003, we need to set 1003 outside tmux in order to get all the mouse events, but then we need to suppress the ones that pane A doesn't want. This is easy in SGR mouse mode, because buttons == 3 is only used for movement events (for other events the trailing m/M marks a release instead), but in normal mouse mode we can't tell so easily. So for that, look at the previous event instead - if it is drag+release as well, then the current event is a movement event.
| * Revert previous for now, it will break TERM=screen.nicm2017-01-25
| |
| * If xterm-keys is on, use xterm(1) style keys for Home and End as well asnicm2017-01-25
| | | | | | | | modified keys.
* | Merge branch 'obsd-master'Thomas Adam2016-10-04
|\|
| * Remove some dead code in cmd-move-window.c and make a load of localnicm2016-10-03
| | | | | | | | functions static.
* | Merge branch 'obsd-master'Thomas Adam2016-03-02
|\| | | | | | | | | Conflicts: utf8.c
| * Limit x, y and b to 0x7ff for UTF-8 mouse input, suggested by schwarze@.nicm2016-03-02
| |
| * Use system wcwidth() instead of carrying around UTF-8 width tables.nicm2016-03-01
| |
* | Merge branch 'obsd-master'Thomas Adam2016-01-19
|\|
| * I no longer use my SourceForge address so replace it.nicm2016-01-19
| |
* | Merge branch 'obsd-master'Thomas Adam2015-12-12
|\|
| * Allow prefix and prefix2 to be set to None to disable (useful if younicm2015-12-12
| | | | | | | | would rather bind the prefix in the root table).
* | Merge branch 'obsd-master'Thomas Adam2015-11-24
|\|
| * Partly revert previous, it is harmless to keep support for UTF-8 mousenicm2015-11-23
| | | | | | | | mode inside tmux, just no longer support it for tmux itself.
* | Merge branch 'obsd-master'Thomas Adam2015-11-23
|\|
| * Remove support for the UTF-8 mouse extension. This was a briefly used,nicm2015-11-23
| | | | | | | | | | | | | | | | poor idea that was fairly quickly replaced by SGR mouse input (which is now widespread). It is impossible to tell the difference between UTF-8 and non-UTF-8 mouse input; since the mouse-utf8 option was removed tmux has not handled it correctly in any case; and it is ridiculous to have three different forms of mouse input.
* | Merge branch 'obsd-master'Thomas Adam2015-11-17
|\|
| * 0x7f is a valid key.nicm2015-11-16
| |
* | Merge branch 'obsd-master'Thomas Adam2015-11-14
|\|
| * All these return values from utf8_* are confusing, use an enum.nicm2015-11-14
| |
* | Merge branch 'obsd-master'Thomas Adam2015-11-13
|\|
| * Rename overly-long utf8data to ud throughout.nicm2015-11-12
| |
* | Merge branch 'obsd-master'Thomas Adam2015-11-12
|\|