nicm
17bab32794
Change pasting to bypass the output key processing entirely and write
...
what was originally received. Fixes problems with pasted text being
interpreted as extended keys reported by Mark Kelly.
2024-10-01 06:15:47 +00:00
nicm
eb1f8d70a7
Mark keys sent by command and skip paste handling for them.
2023-01-16 11:26:14 +00:00
nicm
4d79d463ef
Allow send-keys without a client again, reported by Stefan Hagen.
2022-12-19 07:30:10 +00:00
nicm
3b3f42053a
Add send-keys -K to handle keys directly as if typed (so look up in key
...
table). GitHub issue 3361.
2022-12-16 08:13:40 +00:00
nicm
c07d582e24
Expand arguments to some commands where it makes sense, GitHub issue
...
3204 from Anindya Mukherjee.
2022-06-07 10:02:19 +00:00
nicm
f26b8c57ff
Same as -N, don't send if 0 arguments and -R.
2021-10-19 12:51:43 +00:00
nicm
537302f2c1
Do not send any key if -N flag is given even if no other arguments,
...
fixes problem with repeat in copy mode reported by tb@.
2021-10-15 10:39:22 +00:00
nicm
9f6164a05c
Make send-keys without any arguments send the key it is bound to (if
...
any). GitHub issue 2904.
2021-10-05 12:49:37 +00:00
nicm
08e6360f23
Add args parsing callback for some future work, currently unused.
2021-08-21 10:22:38 +00:00
nicm
5f32b7d961
Hide struct args behind a couple of accessor functions.
2021-08-20 19:50:16 +00:00
nicm
7eea3d7ab8
Break the colour palette into a struct rather than just a single array
...
and use that to support the OSC palette-setting sequences in popups.
Also add a pane-colours array option to specify the defaults. GitHub
issue 2815.
2021-08-11 20:49:55 +00:00
nicm
bda2a0282a
Fix ASCII keys with send-keys -l.
2020-05-27 14:45:35 +00:00
nicm
6f03e49e68
Use the internal representation for UTF-8 keys instead of wchar_t and
...
drop some code only needed for that.
2020-05-25 18:57:24 +00:00
nicm
292b335ca5
Separate key flags and modifiers, log key flags, make the "xterm" flag
...
more explicit and fix M- keys with a leading escape.
2020-05-16 16:35:13 +00:00
nicm
1ef9a69f4f
Send keys when they are complete not before (!= vs ==).
2020-04-14 13:22:05 +00:00
nicm
3f7f9a0e20
Make client -c and -t handling common in cmd-queue.c and try to be
...
clearer about whether the client is the target client (must have a
session) or not.
2020-04-13 20:51:57 +00:00
nicm
adb76fd1ce
Move cmdq_state into cmd-queue.c.
2020-04-13 14:46:04 +00:00
nicm
9a65102bfc
Rename cmdq_shared to cmdq_state which will better reflect what it is
...
(going to be) used for.
2020-04-13 14:04:25 +00:00
nicm
77d5b0cc53
Store a key event not a mouse event in the shared data.
2020-04-13 13:42:35 +00:00
nicm
04cdd03525
Also move cmdq_item and cmdq_list into cmd-queue.c (this is to make its
...
use more clearly defined and preparation for some future work).
2020-04-13 10:59:58 +00:00
nicm
c20eb0c0ae
Make struct cmd local to cmd.c and move it out of tmux.h.
2020-04-13 08:26:27 +00:00
nicm
b96ac80901
Some unnecessary assignments and unused variables.
2020-04-09 13:52:31 +00:00
nicm
de34436d4c
Change input path so it doesn't require a pane.
2020-03-19 14:03:48 +00:00
nicm
04eee2410d
Treat plausible but invalid keys (like C-BSpace) as literal like any
...
other unrecognised string passed to send-keys. Reported by Anthony
Sottile in GitHub issue 2049.
2020-01-13 07:51:54 +00:00
nicm
c225262e13
Add -F flag to send-keys to expand formats in search-backward and
...
forward copy mode commands, this makes it easier to use the cursor_word
and cursor_line formats. From Anindya Mukherjee in GitHub issue 1964.
2019-11-07 07:11:25 +00:00
nicm
91b6145499
The command item changes so can't keep getting the target out of it, need to use
...
the one from the first item. Fixes crash reported by M Kelly.
2019-07-10 14:33:24 +00:00
nicm
fc2016dbb6
Add a -H flag to send-keys to send literal keys given as hex numbers
...
(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.
2019-07-09 14:03:12 +00:00
nicm
a131655235
Add simple menus to tree, client, buffer modes.
2019-05-12 08:58:09 +00:00
nicm
21d9750450
send-keys also needs to insert key commands in the right order.
2019-05-09 13:12:59 +00:00
nicm
3f6bfbaf2b
Allow multiple modes to be open in a pane. A stack of open modes is kept
...
and the previous restored when the top is exited. If a mode that is
already on the stack is entered, the existing instance is moved to the
top as the active mode rather than being opened new.
2019-03-12 11:16:49 +00:00
nicm
f98c66ece8
Add a separate mode struct for the active window mode if any.
2019-03-07 20:24:21 +00:00
nicm
bde0224deb
Pass window into mode functions.
2018-12-18 13:20:44 +00:00
nicm
6048b0f483
Make key trees and some other bits static.
2018-08-02 11:44:07 +00:00
nicm
a00b0d13ed
Apply the xterm key flag when needed for send-keys, fixes problem
...
reported by Franky Spamschleuder.
2017-06-28 11:36:39 +00:00
nicm
0e3c5ebe1a
Insert copy mode bindings at the right place in the command queue.
2017-05-10 10:46:59 +00:00
nicm
3712b41aba
If the target pane for send-keys in in a mode with a key table (that is,
...
copy mode), then look the key up in the table and fire any command
instead of delivering the key to the pane directly where it will be
ignored. This makes C-b C-b (send-prefix) work in copy mode again.
2017-05-09 17:56:55 +00:00
nicm
ee45a8a149
Get rid of the extra layer of flags and cmd_prepare() and just store the
...
CMD_FIND_* flags in the cmd_entry and call it for the command. Commands
with special requirements call it themselves and update the target for
hooks to use.
2017-04-22 10:22:39 +00:00
nicm
bba588752f
Store state shared between multiple commands in the queue in a shared
...
structure.
2017-04-21 14:01:19 +00:00
nicm
314e933914
Add support for the OSC 4 and OSC 104 palette setting escape sequences,
...
from S Gilles.
2017-01-07 15:28:13 +00:00
nicm
b851c628f4
-N without arguments needs to set prefix count for the mode command, so
...
that M-1 etc work. Reported by Theo Buehler.
2016-12-11 22:55:25 +00:00
nicm
2a7b4bb017
Fix send-keys with UTF-8.
2016-12-08 22:15:37 +00:00
nicm
6b46c62bb4
Make send -N work for all keys, not just in copy mode. From Artem Fokin.
2016-11-29 12:54:46 +00:00
nicm
b342bd0b46
Mass rename struct cmd_q to struct cmdq_item and related.
2016-10-16 19:04:05 +00:00
nicm
ddc4512d2e
Rewrite command queue handling. Each client still has a command queue,
...
but there is also now a global command queue. Instead of command queues
being dispatched on demand from wherever the command happens to be
added, they are now all dispatched from the top level server
loop. Command queues may now also include callbacks as well as commands,
and items may be inserted after the current command as well as at the end.
This all makes command queues significantly more predictable and easier
to use, and avoids the complex multiple nested command queues used by
source-file, if-shell and friends.
A mass rename of struct cmdq to a better name (cmdq_item probably) is
coming.
2016-10-16 17:55:14 +00:00
nicm
ed971268be
Add CMD_AFTERHOOK flag to the easy commands that don't need any special handling.
2016-10-14 22:14:22 +00:00
nicm
76d6d3641f
Fundamental change to how copy mode key bindings work:
...
The vi-copy and emacs-copy mode key tables are gone, and instead copy
mode commands are bound in one of two normal key tables ("copy-mode" or
"copy-mode-vi"). Keys are bound to "send-keys -X copy-mode-command". So:
bind -temacs-copy C-Up scroll-up
bind -temacs-copy -R5 WheelUpPane scroll-up
Becomes:
bind -Tcopy-mode C-Up send -X scroll-up
bind -Tcopy-mode WheelUpPane send -N5 -X scroll-up
This allows the full command parser and command set to be used - for
example, we can use the normal command prompt for searching, jumping,
and so on instead of a custom one:
bind -Tcopy-mode C-r command-prompt -p'search up' "send -X search-backward '%%'"
command-prompt also gets a -1 option to only require on key press, which
is needed for jumping.
The plan is to get rid of mode keys entirely, so more to come eventually.
2016-10-11 07:23:34 +00:00
nicm
a81685bfac
Add static in cmd-* and fix a few other nits.
2016-10-10 21:51:39 +00:00
nicm
995af0e2b7
I no longer use my SourceForge address so replace it.
2016-01-19 15:59:12 +00:00
nicm
99e9a4c786
send-keys -R should reset the input parser to ground state (so it can be
...
used to escape from, for example, printf '\033]2;').
2015-12-16 22:05:35 +00:00
nicm
a3129fd4e8
Instead of combined flags for -c, -s, -t, split into different sets
...
using an enum and simplify the parsing code.
2015-12-14 00:31:54 +00:00