nicm
51d037e881
Major rework of prompts. The basic prompt mechanics (draw, editing, etc)
...
are now wrapped up in prompt*.c and do not depend on a client. These
functions are used to provide the original client prompt but also to
allow panes to have their own prompts, which works much much better for
floating panes. The mode prompts for both the tree modes and copy mode
are switched over to be per pane.
There are some visible changes (some of these may be changed if they
don't seem to be working well):
- Prompts in modes now appear in the bottom line, covering whatever
content was there.
- command-prompt has a -P flag to open a pane prompt.
- Because they cover the content, the default style for prompts in modes
now does not fill the entire line; the main command prompt stays the
same.
- The old completion menu has gone, and completions are now shown after
the text. Builtin aliases are no longer completed.
- Clicking the mouse on the prompt now moves the cursor or selects a
completion.
2026-06-25 11:39:11 +00:00
nicm
6b1219b370
Ignore mouse when help is open.
2026-06-24 21:47:06 +00:00
nicm
37633ff957
Add some enums for prompt return values to make them a bit less confusing.
2026-06-24 10:55:39 +00:00
nicm
89027bd22c
Fix MOVE flag handling and remove key code (not actually needed).
2026-06-23 21:00:20 +00:00
nicm
0c5e6770df
Turn off preview if no draw callback and add a function to move to top.
2026-06-23 20:30:10 +00:00
nicm
c0a5e10313
Use flags for input callback instead of a single int done so the
...
callback can be told about cursor movement in an incremental prompt.
2026-06-23 20:07:58 +00:00
nicm
b82048eb18
Add c key to clear filter.
2026-06-23 08:20:15 +00:00
nicm
6c46358be8
Draw help directly instead of using a popup.
2026-06-19 17:37:26 +00:00
nicm
bf187170b1
Extend client mode so the preview can be changed to a view with a
...
summary of the client terminal and its features, intended to make
troubleshooting easier. "choose-client -i" or the "i" key in the mode.
2026-06-13 10:32:54 +00:00
nicm
85d72b9952
Return immediately if the list is empty in mode_tree_key instead of
...
crashing, from Bryce Miller in GitHub issue 5170.
2026-06-08 15:16:21 +00:00
nicm
2e9c6c2586
Add some checks on line size to avoid underflow, from san65384 at gmail
...
dot com in GitHub issue 4955.
2026-05-01 11:56:41 +00:00
nicm
4a926e489b
Make C-[ have the same bindings as Escape for terminals with extended
...
keys where they are different, GitHub issue 5035 from Eric NICOLAS.
2026-04-28 10:01:07 +00:00
nicm
b88c08f860
Fix a NULL dereference and use after free, GitHub issue 4936 from Pavel
...
Lavrukhin.
2026-03-23 09:03:43 +00:00
nicm
fd62f419ac
Add a short builtin help text for each mode accessible with C-h,
...
based on code from Patrick Motard in GitHub issue 4751.
2026-03-12 12:40:40 +00:00
nicm
3c3d9ce3a9
Break sorting out into a common file so formats and modes use the same
...
code. Also add -O for sorting to the list commands. From Dane Jensen in
GitHub issue 4813.
2026-02-02 10:08:30 +00:00
nicm
9bf8ca5856
Support case insensitive search in modes in the same way as copy mode
...
(like emacs, so all-lowercase means case insensitive). GitHub issue
4396.
2025-10-28 14:21:06 +00:00
nicm
4bf38da4d4
Only align panes and windows, not sessions, from David Mandelberg in
...
GitHub issue 4444.
2025-04-02 09:31:00 +00:00
nicm
a541be3951
Add S-Up and S-Down to move windows in tree mode. From David Mandelberg
...
in GitHub issue 4415.
2025-03-21 13:36:42 +00:00
nicm
5d1a6acc84
Align index numbers in trees, from David Mandelberg, GitHub issue 4360.
2025-02-10 08:18:23 +00:00
nicm
80eb460fc9
Add display-message -C flag to update pane while message is displayed,
...
GitHub issue 4363 from Vitaly Ostrosablin.
2025-02-10 08:14:32 +00:00
nicm
bec6ce54c1
Memory leak, GitHub issue 4298.
2024-12-16 08:54:34 +00:00
nicm
9528d7470b
Try to stay near the same line in modes if the current one is removed.
2024-10-06 09:30:22 +00:00
nicm
b95a06d2d4
Add a way to make the preview larger in tree mode, GitHub issue 4124.
2024-10-01 10:10:29 +00:00
nicm
c7e61a01e5
Revamp extended keys support to more closely match xterm and support
...
mode 2 as well as mode 1. From Stanislav Kljuhhin (GitHub issue 4038).
This changes tmux to always request mode 2 from parent terminal, change
to an unambiguous internal representation of keys, and adds an option
(extended-keys-format) to control the format similar to the xterm(1)
formatOtherKeys resource.
2024-08-21 04:17:09 +00:00
nicm
7b6fbe7262
Adjust the logic when deleting last buffer to better preserve the
...
selection: if selecting the element below the deleted one fails (because
as the last one), select the one above it instead. From Daniel Mueller,
GitHub issue 4043.
2024-08-04 08:53:43 +00:00
nicm
9e7c1aee48
Add N to search backwards in tree modes, from Fadi Afani in GitHub issue
...
3982.
2024-05-24 12:39:06 +00:00
nicm
b770a429c6
Add an option menu-selected-style to configure the currently selected
...
menu item, from Alexis Hildebrandt.
2023-08-15 07:01:47 +00:00
nicm
57837bbf67
Do not crash if in buffer mode and the last buffer is deleted using the
...
command.
2023-08-11 17:09:00 +00:00
nicm
dee72ed41f
Add options and flags for menu styles similar to those existing for
...
popups, from Alexis Hildebrandt. GitHub issue 3650.
2023-08-08 08:08:47 +00:00
nicm
3aa458ea63
Add a flag to display-menu to select the manu item chosen first, GitHub
...
issue 3442.
2023-01-20 21:36:00 +00:00
nicm
97900d0442
A menu must be shown on a client, so always give the client when adding
...
the items. Also fix mode menus.
2022-02-01 18:12:20 +00:00
nicm
ecac73f664
Fix g/G keys to be in line with copy mode.
2021-12-06 10:10:52 +00:00
nicm
b55f0ac6b9
Leave the hardware cursor at the position of the selected line in choose
...
modes and current editing position and at the command prompt. It is
invisible but this is helpful for people using screen readers. GitHub
issue 2970.
2021-11-15 10:58:13 +00:00
nicm
5745bd27fd
Do not allow inline styles to replace mode-style for the selected item,
...
from Alexis Hildebrandt in GitHub issue 2946.
2021-10-26 12:22:23 +00:00
nicm
8a9bfd0cdd
Add -T to set a popup title, from Alexis Hildebrandt in GitHub issue 2941.
2021-10-20 09:50:40 +00:00
nicm
add20637f2
Add popup-border-lines option to set popup line style, from Alexis
...
Hildebrandt, GitHub issue 2930.
2021-10-14 13:19:01 +00:00
nicm
837ca176d1
Add popup-style and popup-border-style options, from Alexis Hildebrandt
...
in GitHub issue 2927.
2021-10-13 09:28:36 +00:00
nicm
e463e8622d
Remove stray spaces after function names.
2021-08-20 17:50:42 +00:00
nicm
866117636e
Add different command historys for different types of prompts
...
("command", "search" etc). From Anindya Mukherjee.
2021-06-10 07:50:03 +00:00
nicm
e6abe55134
Add a flag to disable keys to close a message, GitHub issue 2625.
2021-04-12 09:36:12 +00:00
nicm
cd208c9d72
Permit shortcut keys in buffer, client, tree modes to be configured with
...
a format; the default remains the line number. GitHub issue 2636.
2021-04-12 06:50:25 +00:00
nicm
40e65c5115
Add a -d option to display-message to set delay, from theonekeyg at
...
gmail dot com in GitHub issue 2322.
2020-07-27 08:03:10 +00:00
nicm
1bf9555e4f
d and D keys to reset to default in customize mode.
2020-06-16 08:18:34 +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
c914abfa19
Expand target from client and use it to expand the prompt.
2020-05-16 16:16:07 +00:00
nicm
d67245c734
Add a customize mode where keys and options may be browsed and changed,
...
includes adding a brief description of each option. Bound to "C" by
default.
2020-05-16 16:02:24 +00:00
nicm
472d77fd0f
Support embedded styles in the display-message message, GitHub issue
...
2206.
2020-05-16 15:54:20 +00:00
nicm
4de0bd4c5c
Add M-+ and M-- to expand and collapse all items in tree mode.
2020-05-16 15:46:01 +00:00
nicm
9605b080f6
Do not hoke into struct window_pane from the tty code and instead set
...
everything up in tty_ctx. Provide a way to initialize the tty_ctx from a
callback and use it to let popups draw directly through input_parse in
the same way as panes do, rather than forcing a full redraw on every
change.
2020-05-16 15:34:08 +00:00
nicm
f03b61131b
Drop having a separate type for style options and make them all strings,
...
which allows formats to be expanded. Any styles without a '#{' are still
validated when they are set but any with a '#{' are not. Formats are not
expanded usefully in many cases yet, that will be changed later.
To make this work, a few other changes:
- set-option -a with a style option automatically appends a ",".
- OSC 10 and 11 don't set the window-style option anymore, instead the
fg and bg are stored in the pane struct and act as the defaults that
can be overridden by window-style.
- status-fg and -bg now override status-style instead of trying to keep
them in sync.
2020-05-16 15:01:30 +00:00