aboutsummaryrefslogtreecommitdiff
path: root/tty.c
Commit message (Collapse)AuthorAge
...
* Send secondary device attributes instead of primary which gives us a bitnicm2020-04-16
| | | | more useful information on some terminals.
* Move the UTF-8 flag to terminal flags.nicm2020-04-16
|
* Add a helper function to get the terminal flags.nicm2020-04-16
|
* Add support for the iTerm2 sychronized updates escape sequence whichnicm2020-04-16
| | | | drastically reduces flickering.
* Wait until the initial command sequence is done before sending a devicenicm2020-04-09
| | | | | | | 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-24
| | | | | 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 ↵nicm2020-03-17
| | | | style.
* VTE treats each mouse mode bit as independent, so turning off 1000nicm2020-03-16
| | | | | 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-16
|
* Do not send DA and DSR again if already have a response.nicm2020-01-29
|
* If we can identify the terminal as iTerm2 or as tmux, we can be surenicm2020-01-28
| | | | they support 256 and RGB colours, so set those flags too.
* Stop handling DA and DSR after a second (they should be the first thingnicm2020-01-13
| | | | sent) so this should be plenty.
* Be more specific in the DSR we are looking for so it doesn't getnicm2020-01-13
| | | | | | confused with mouse sequences. Also set a flag and don't bother checking for it if we have already seen it (same for DA), and don't check if we never asked for it.
* Detect iTerm2 and enable DECSLRM.nicm2020-01-12
|
* The terminal type was never as much use as I expected so remove it innicm2020-01-12
| | | | | favour of a couple of flags for the features used (DECSLRM and DECFRA). Also rename the flag for no xenl to be more obvious while here.
* Do not set cursor colour to default unless it has been changed, GitHubnicm2019-12-11
| | | | issue 2013.
* Long lines and spacing fixes.nicm2019-11-28
|
* Store xpixel/ypixel from TIOCGWINSZ and add formats.nicm2019-11-28
|
* CUB and CUF are also limited by the margins so use CUP instead whennicm2019-11-14
| | | | margins are enabled (we already do this for linefeed).
* Do not use bright when emulating 256 colours on an 8 colour terminalnicm2019-09-19
| | | | because it is also bold on some terminals. GitHub issue 1914.
* Add support for the SD (scroll down) escape sequence, GitHub issue 1861.nicm2019-08-05
|
* xterm 348 now disables margins when resized, so send DECLRMM again.nicm2019-08-01
|
* Fix check for wrapping when redrawing entire lines, GitHub issue 1836.nicm2019-07-16
|
* Add support for underscore colours with Setulc capability, mostly fromnicm2019-06-27
| | | | Kai Moschcau.
* Fix some comments (top/bottom not left/right).nicm2019-06-26
|
* Add a per-pane option set. Pane options inherit from window options (sonicm2019-06-20
| | | | | | | | | | | | there should be no change to existing behaviour) and are set and shown with set-option -p and show-options -p. Change remain-on-exit and window-style/window-active-style to be pane options (some others will be changed later). This makes select-pane -P and -g unnecessary so no longer document them (they still work) and no longer document set-window-option and show-window-options in favour of set-option -w and show-options -w.
* I had hoped that non-xenl terminals had died out, at least in fairlynicm2019-05-30
| | | | | modern OSs, but no - DragonFly BSD's console returns to haunt us. Fix it at least somewhat. GitHub issue 1763.
* Add support for overline (SGR 53), from Ricardo Banffy.nicm2019-05-13
|
* Need a fallback for -2 for aixterm colours.nicm2019-04-25
|
* Use bg not fg when adjusting for aixterm, from Ailin Nemui.nicm2019-04-24
|
* Set the window size as well as the layout size when using the presetnicm2019-04-17
| | | | layouts.
* Fix ED1 (clear end of screen), reported by Marc Reisner.nicm2019-03-14
|
* Add a wrapper (struct style) around styles rather than using thenicm2019-03-14
| | | | grid_cell directly. There will be some non-cell members soon.
* Need to set attributes before clearing.nicm2019-03-13
|
* Set a flag on cells are genuinely empty (cleared and never written to)nicm2019-03-12
| | | | | | and use tty_clear_line (which will choose the best escape sequence) to clear any batches of cells with that flag when redrawing a line from the stored screen.
* Don't set client offset if client is not a terminalnicm2019-03-04
|
* Should use DECFRA if not default, not if default. From Karl Beldan.nicm2019-01-20
|
* Should save the bg colour when setting it to default, not the fg.nicm2019-01-15
|
* evbuffer_new and bufferevent_new can both fail (when malloc fails) andnicm2018-11-19
| | | | return NULL. GitHub issue 1547.
* Add a "terminal" colour which can be used instead of "default" in stylenicm2018-10-25
| | | | | options for the terminal default colour, bypassing any inheritance from other options. Prompted by a discussion with abieber@.
* 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.
* Support for extended underline styles on terminals which offer them,nicm2018-10-18
| | | | | enabled by adding the Smulx capability with terminal-overrides (add something like ',vte*:Smulx=\E[4\:%p1%dm'). GitHub issue 1492.
* Allow panes to be 1 line or column by redrawing instead of using thenicm2018-09-25
| | | | scroll region, from Soeren Tempel in GitHub issue 1487.
* The cursor position is limited to the margins for CUF and CUB, so turnnicm2018-09-11
| | | | | margins off for printing cells (like most everything else already does). Problem reported by Thomas Sattler.
* Add a client redraw-window flag instead of the redraw-all flag and fornicm2018-08-19
| | | | all just use the three flags together (window, borders, status).
* Some tidying and helper functions.nicm2018-08-18
|
* Add accessors for grid linedata member, for some future work. From Dannicm2018-07-04
| | | | Aloni.
* Handle terminfo colors > 256 correctly, GitHub issue 1337.nicm2018-05-07
|
* rxvt-unicode has some funny behaviour when scrolling with the cursor notnicm2018-04-23
| | | | at column 1, so move it back there first if possible. GitHub issue 1318.
* Upstream ncurses has introduced terminfo capabilities to specify RGBnicm2018-02-04
| | | | | | | | | | | | | | | | | | | | | colour ("true" or "direct" colour). These consist of new entries (such as "xterm-direct") which have a different setaf/setab implementation, colors and pairs set to 0x1000000 and 0x10000, and a new RGB flag. The setaf/setab definitions seem to be geared towards what ncurses (or emacs maybe) needs, in that the new versions do only ANSI and RGB colours (they can't be used for the 256 colour palette); they rely on the silly ISO colon-separated version of SGR; and they use a weird multiplication scheme so they still only need one argument. The higher values of colors and pairs require a recent ncurses to parse. tmux can use the RGB flag to detect RGB colour support (keeping the old Tc extension for backwards compatibility for now). However, as we still want to send 256 colour information unchanged when possible, the new setaf/setab are awkward. So when RGB is present, reserve setaf/setab only for ANSI colours and use the escape sequences directly for 256 and RGB colours. (To my knowledge no recent terminal uses unusual escape sequences for these in any case.)