aboutsummaryrefslogtreecommitdiff
path: root/tty.c
Commit message (Collapse)AuthorAge
* Do not reset cursor to default if it has never been changed, fixesnicm2021-10-06
| | | | problem reported by naddy.
* Separate "very visible" flag from blinking flag, it should not affectnicm2021-10-05
| | | | DECSCUSR. GitHub issue 2891.
* calloc for confirm-before data since the item needs to start NULL.nicm2021-08-17
|
* Be more sophisticated about enabling synchronized updates when there isnicm2021-08-17
| | | | | | an overlay and treat it like the active pane (use for commands which move the cursor only). When there is an overlay also use it for all panes and not just the active pane. GitHub issue 2826.
* Add a menu when a popup is present (mouse only for now).nicm2021-08-13
|
* Evaluate styles with the pane variables.nicm2021-08-12
|
* Break the colour palette into a struct rather than just a single arraynicm2021-08-11
| | | | | | 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.
* OSC 52 can be long enough to make tmux think the output buffer is toonicm2021-08-11
| | | | big, so treat it as a redraw. GitHub issue 2814.
* Another minor fix - do not draw positions that are under the popup withnicm2021-08-06
| | | | spaces, from Anindya Mukherjee. Also a typo fix from Linus Arver.
* Tweak previous not to replace complete characters with spaces.nicm2021-08-06
|
* Correctly draw wide characters that are partially obscured.nicm2021-08-06
|
* Do not freeze output in panes when a popup is open, let them continue tonicm2021-08-05
| | | | redraw. From Anindya Mukherjee .
* Do not clear region based on current cursor position, this is notnicm2021-06-10
| | | | necessary anymore and causes problems, GitHub issue 2735.
* Improve logging of screen mode changes.nicm2021-06-10
|
* Change cursor style handling so tmux understands which sequences containnicm2021-06-10
| | | | | blinking and sets the flag appropriately, means that it works whether cnorm disables blinking or not. GitHub issue 2682.
* Fix so tmux correctly sends the cvvis (cursor very visible) capabilitynicm2021-03-12
| | | | | 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-17
| | | | | | 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-18
| | | | | 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-03
| | | | | 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-09
| | | | with some bits implying others. GitHub issue 2458.
* Use the setal capability as well as (tmux's) Setulc.nicm2020-10-05
|
* Check started flag before looking for capability.nicm2020-09-02
|
* Add a -w flag to set- and load-buffer to send to clipboard using OSC 52.nicm2020-09-02
| | | | GitHub issue 2363.
* Fix various confusion about am vs xenl.nicm2020-06-05
|
* Move the code to set up a padding cell into grid.c.nicm2020-06-02
|
* Now the tty has a pointer back to the client there is no point (and anicm2020-05-24
| | | | bit confusing) in it keeping a copy of the fd as well. Remove it.
* xterm* can have focus too.nicm2020-05-22
|
* Add a terminal feature for enable/disable extended keys (supported bynicm2020-05-16
| | | | | | | 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-16
| | | | | | 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-16
| | | | | | | | | 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-16
| | | | | 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-16
|
* Do not hoke into struct window_pane from the tty code and instead setnicm2020-05-16
| | | | | | | 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-16
|
* Drop having a separate type for style options and make them all strings,nicm2020-05-16
| | | | | | | | | | | | | | | | | 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-16
|
* Add extension terminfo(5) capabilities for margins.nicm2020-05-16
|
* Remove support for iTerm2's DSR 1337 extension and use the CSI > qnicm2020-05-16
| | | | extension now supported by a few different terminals.
* Do not clear client pane redraw flags until the redraw actually happens.nicm2020-04-21
|
* Apply terminal-overrides after terminal detection, it always takesnicm2020-04-20
| | | | precedence.
* Change how sync works to always send the end sequence after all outputnicm2020-04-20
| | | | | 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-20
|
* Tidy up the terminal detection and feature code and add named sets ofnicm2020-04-20
| | | | | | | | | | | | | | | | | | | | | 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-18
| | | | | 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-18
| | | | redrawing.
* Revert previous, there is still a problem.nicm2020-04-18
|
* When a redraw is deferred because the terminal hasn't finished readingnicm2020-04-18
| | | | | | | | | 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-17
| | | | 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-17
| | | | home instead.
* Support the application escape sequence mintty (means tmux doesn't havenicm2020-04-17
| | | | to delay to wait for Escape).