summaryrefslogtreecommitdiffstats
path: root/usr.bin/tmux/tty.c (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Fix so tmux correctly sends the cvvis (cursor very visible) capabilitynicm2021-03-121-14/+26
| | | | | rather than sending it and then immediately undoing it with cnorm. Also turn it off when the cursor shape is changed like xterm.
* Move the call to setupterm() into the client and have it pass thenicm2021-02-171-3/+3
| | | | | | results to the server over imsg, means the server does not need to enter ncurses or read terminfo db. Old clients will not work with a new server.
* There is no need to clear every line entirely before drawing to it, thisnicm2021-01-181-13/+2
| | | | | means moving the cursor and messes up wrapping. Better to just clear the sections that aren't written over. GitHub issue 2537.
* Redraw any visible modes when status line changes so that formats likenicm2020-12-031-3/+3
| | | | | the pane title are updated. GitHub issue 2487. Also a man page fix from jmc.
* If mouse bits change, clear them all and set again to avoid problemsnicm2020-11-091-15/+13
| | | | with some bits implying others. GitHub issue 2458.
* Use the setal capability as well as (tmux's) Setulc.nicm2020-10-051-10/+24
|
* Check started flag before looking for capability.nicm2020-09-021-3/+3
|
* Add a -w flag to set- and load-buffer to send to clipboard using OSC 52.nicm2020-09-021-8/+16
| | | | GitHub issue 2363.
* Fix various confusion about am vs xenl.nicm2020-06-051-10/+10
|
* Move the code to set up a padding cell into grid.c.nicm2020-06-021-5/+6
|
* Now the tty has a pointer back to the client there is no point (and anicm2020-05-241-37/+32
| | | | bit confusing) in it keeping a copy of the fd as well. Remove it.
* xterm* can have focus too.nicm2020-05-221-2/+2
|
* Add a terminal feature for enable/disable extended keys (supported bynicm2020-05-161-12/+11
| | | | | | | xterm and mintty) and add an option to make tmux send it. Only forward extended keys if the application has requested them, even though we use the CSI u sequence and xterm uses CSI 27 ~ - this is what mintty does as well.
* Add an option to set the pane border lines style from a choice of singlenicm2020-05-161-15/+21
| | | | | | lines (ACS or UTF-8), double or heavy (UTF-8), simple (plain ASCII) or number (the pane numbers). Lines that won't work on a non-UTF-8 terminal are translated back into ACS when they are output.
* Add a client flag 'active-pane' which stores the active pane in thenicm2020-05-161-4/+3
| | | | | | | | | client and allows it to be changed independently from the real active pane stored in the window. This is can be used with session groups which allow an independent current window (although it would be nice to have a flag for this too and remove session groups). The client active pane is only really useful interactively, many things (hooks, window-style, zooming) still use the window active pane.
* Add a -D flag to ask tmux not to daemonize, useful both for running anicm2020-05-161-2/+7
| | | | | debugger (lldb does not have follow-fork-mode) and for running with a managed supervisor init system. GitHub issue 2190.
* Do not need to work out status line offset, we already have it.nicm2020-05-161-10/+5
|
* Do not hoke into struct window_pane from the tty code and instead setnicm2020-05-161-210/+162
| | | | | | | 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.
* Rename and tidy some stuff in struct tty_ctx.nicm2020-05-161-79/+71
|
* Drop having a separate type for style options and make them all strings,nicm2020-05-161-3/+15
| | | | | | | | | | | | | | | | | 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.
* Use a grid cell not a style for the pane style.nicm2020-05-161-17/+9
|
* Instead of having a default set of terminals in terminal-overrides thatnicm2020-05-161-4/+4
| | | | | | | get XT added and using that as a marker for xterm(1)-like, assume that if the terminfo(5) entry already has XT or the clear capability starts with CSI then the terminal is VT100-like and it should be safe to send DA requests. The DA responses trigger additional features being added.
* Do not redraw or update mode if nothing has changed.nicm2020-05-161-2/+3
|
* Add feature and capabilities for focus reporting. Also document AX andnicm2020-05-161-13/+11
| | | | XT even though they aren't tmux's, and add some bits for rxvt.
* Add a feature for bracketed paste.nicm2020-05-161-4/+4
|
* Add extension terminfo(5) capabilities for margins.nicm2020-05-161-9/+6
|
* Remove support for iTerm2's DSR 1337 extension and use the CSI > qnicm2020-05-161-5/+5
| | | | extension now supported by a few different terminals.
* Do not clear client pane redraw flags until the redraw actually happens.nicm2020-04-211-1/+2
|
* Apply terminal-overrides after terminal detection, it always takesnicm2020-04-201-2/+3
| | | | precedence.
* Change how sync works to always send the end sequence after all outputnicm2020-04-201-11/+17
| | | | | is done when we are returning to the event loop (since we always move the cursor at that point). Also a man fix from jmc.
* Change the Sync capability to be a string instead of a flag.nicm2020-04-201-3/+3
|
* Tidy up the terminal detection and feature code and add named sets ofnicm2020-04-201-89/+34
| | | | | | | | | | | | | | | | | | | | | terminal features, each of which are defined in one place and map to a builtin set of terminfo(5) capabilities. Features can be specified based on TERM with a new terminal-features option or with the -T flag when running tmux. tmux will also detect a few common terminals from the DA and DSR responses. This is intended to make it easier to configure tmux's use of terminfo(5) even in the presence of outdated ncurses(3) or terminfo(5) databases or for features which do not yet have a terminfo(5) entry. Instead of having to grok terminfo(5) capability names and what they should be set to in the terminal-overrides option, the user can hopefully just give tmux a feature name and let it do the right thing. The terminal-overrides option remains both for backwards compatibility and to allow tweaks of individual capabilities. tmux already did much of this already, this makes it tidier and simpler to configure.
* Bring back previons fix to only redraw panes that need it after a redrawnicm2020-04-181-1/+11
| | | | | is deferred, but clear the pane flags when they are actually redrawn rather than every time.
* Add a flag to protect against nested syncs and add some extra logging tonicm2020-04-181-3/+7
| | | | redrawing.
* Revert previous, there is still a problem.nicm2020-04-181-15/+3
|
* When a redraw is deferred because the terminal hasn't finished readingnicm2020-04-181-3/+15
| | | | | | | | | the data from the last one, other panes could update while waiting, so we set the flag to redraw them all when the new redraw actually happened. But this means a lot of redrawing panes unnecessarily if they haven't changed - so instead set a flag to say "at least one pane needs to be redrawed" then look at the invidual pane flags to see which ones need it.
* Set mode properly before and after redrawing, and don't bothernicm2020-04-171-1/+4
| | | | calculating cursor position if it won't be used.
* Do not move the cursor to the existing y position if it is invalid, gonicm2020-04-171-4/+11
| | | | home instead.
* Support the application escape sequence mintty (means tmux doesn't havenicm2020-04-171-1/+3
| | | | to delay to wait for Escape).
* Send secondary device attributes instead of primary which gives us a bitnicm2020-04-161-4/+3
| | | | more useful information on some terminals.
* Move the UTF-8 flag to terminal flags.nicm2020-04-161-2/+2
|
* Add a helper function to get the terminal flags.nicm2020-04-161-19/+27
|
* Add support for the iTerm2 sychronized updates escape sequence whichnicm2020-04-161-1/+27
| | | | drastically reduces flickering.
* Wait until the initial command sequence is done before sending a devicenicm2020-04-091-7/+17
| | | | | | | attributes request and other bits that prompt a reply from the terminal. This means that stray relies are not left on the terminal if the command has attached and then immediately detached and tmux will not be around to receive them. Prompted by a problem report from espie@.
* Add support for overlay popup boxes to show text or output temporarilynicm2020-03-241-4/+17
| | | | | above the normal layout. These work similarly to menus and are created with the display-popup command.
* Do not return early if no bits changed because may still need to change the style.nicm2020-03-171-3/+1
|
* VTE treats each mouse mode bit as independent, so turning off 1000nicm2020-03-161-23/+31
| | | | | doesn't also turn off 1001, so don't rely on that behaviour. GitHub issue 2116.
* Turn off mouse mode 1003 as well as the rest when exiting.nicm2020-03-161-5/+9
|
* Do not send DA and DSR again if already have a response.nicm2020-01-291-3/+5
|
* If we can identify the terminal as iTerm2 or as tmux, we can be surenicm2020-01-281-13/+16
| | | | they support 256 and RGB colours, so set those flags too.