mirror of
https://github.com/neovim/neovim.git
synced 2025-09-30 06:58:35 +00:00
tui: Remove tmux wrapper from the Konsole path.
tmux has its own code path, now; and the tmux wrapping was not the ideal thing to do in the first place. Also improve the commentary on the built-in terminfo records.
This commit is contained in:
@@ -1148,7 +1148,7 @@ static int unibi_find_ext_str(unibi_term *ut, const char *name)
|
|||||||
// on the compiled files.
|
// on the compiled files.
|
||||||
|
|
||||||
// Taken from Dickey ncurses terminfo.src dated 2017-04-22.
|
// Taken from Dickey ncurses terminfo.src dated 2017-04-22.
|
||||||
// This is a 256-colour terminfo description that lacks
|
// This is a 256-colour terminfo description that lacks true-colour and
|
||||||
// DECSTBN/DECSLRM/DECLRMM capabilities that xterm actually has.
|
// DECSTBN/DECSLRM/DECLRMM capabilities that xterm actually has.
|
||||||
static const char xterm_256colour_terminfo[] = {
|
static const char xterm_256colour_terminfo[] = {
|
||||||
26, 1, 37, 0, 29, 0, 15, 0, 105, 1, -42, 5, 120, 116, 101, 114,
|
26, 1, 37, 0, 29, 0, 15, 0, 105, 1, -42, 5, 120, 116, 101, 114,
|
||||||
@@ -1588,6 +1588,8 @@ static const char iterm_16colour_terminfo[] = {
|
|||||||
53, 59, 37, 112, 49, 37, 100, 37, 59, 109, 0
|
53, 59, 37, 112, 49, 37, 100, 37, 59, 109, 0
|
||||||
};
|
};
|
||||||
// Taken from Dickey ncurses terminfo.src dated 2017-04-22.
|
// Taken from Dickey ncurses terminfo.src dated 2017-04-22.
|
||||||
|
// This is a 256-colour terminfo description that lacks true-colour
|
||||||
|
// capabilities that rxvt actually has.
|
||||||
static const char rxvt_256colour_terminfo[] = {
|
static const char rxvt_256colour_terminfo[] = {
|
||||||
26, 1, 47, 0, 29, 0, 15, 0, 110, 1, -31, 4, 114, 120, 118, 116,
|
26, 1, 47, 0, 29, 0, 15, 0, 110, 1, -31, 4, 114, 120, 118, 116,
|
||||||
45, 50, 53, 54, 99, 111, 108, 111, 114, 124, 114, 120, 118, 116, 32, 50,
|
45, 50, 53, 54, 99, 111, 108, 111, 114, 124, 114, 120, 118, 116, 32, 50,
|
||||||
@@ -1723,6 +1725,8 @@ static const char rxvt_256colour_terminfo[] = {
|
|||||||
40, 48, 0
|
40, 48, 0
|
||||||
};
|
};
|
||||||
// Taken from Dickey ncurses terminfo.src dated 2017-04-22.
|
// Taken from Dickey ncurses terminfo.src dated 2017-04-22.
|
||||||
|
// This is a 16-colour terminfo description that lacks true-colour
|
||||||
|
// and 256-colour capabilities that linux (4.8+) actually has.
|
||||||
static const char linux_16colour_terminfo[] = {
|
static const char linux_16colour_terminfo[] = {
|
||||||
26, 1, 43, 0, 29, 0, 16, 0, 125, 1, 125, 3, 108, 105, 110, 117,
|
26, 1, 43, 0, 29, 0, 16, 0, 125, 1, 125, 3, 108, 105, 110, 117,
|
||||||
120, 45, 49, 54, 99, 111, 108, 111, 114, 124, 108, 105, 110, 117, 120, 32,
|
120, 45, 49, 54, 99, 111, 108, 111, 114, 124, 108, 105, 110, 117, 120, 32,
|
||||||
@@ -2066,6 +2070,8 @@ static const char interix_8colour_terminfo[] = {
|
|||||||
0, 27, 91, 52, 37, 112, 49, 37, 100, 109, 0
|
0, 27, 91, 52, 37, 112, 49, 37, 100, 109, 0
|
||||||
};
|
};
|
||||||
// Taken from Dickey ncurses terminfo.src dated 2017-04-22.
|
// Taken from Dickey ncurses terminfo.src dated 2017-04-22.
|
||||||
|
// This is a 256-colour terminfo description that lacks true-colour
|
||||||
|
// capabilities that stterm actually has.
|
||||||
static const char st_256colour_terminfo[] = {
|
static const char st_256colour_terminfo[] = {
|
||||||
26, 1, 55, 0, 29, 0, 15, 0, 105, 1, 117, 5, 115, 116, 45, 50,
|
26, 1, 55, 0, 29, 0, 15, 0, 105, 1, 117, 5, 115, 116, 45, 50,
|
||||||
53, 54, 99, 111, 108, 111, 114, 124, 115, 116, 116, 101, 114, 109, 45, 50,
|
53, 54, 99, 111, 108, 111, 114, 124, 115, 116, 116, 101, 114, 109, 45, 50,
|
||||||
@@ -2510,23 +2516,25 @@ static void patch_terminfo_bugs(TUIData *data, const char *term,
|
|||||||
}
|
}
|
||||||
unibi_set_ext_str(ut, (size_t)data->unibi_ext.reset_cursor_style, "\x1b[?c");
|
unibi_set_ext_str(ut, (size_t)data->unibi_ext.reset_cursor_style, "\x1b[?c");
|
||||||
} else if (konsole) {
|
} else if (konsole) {
|
||||||
// Konsole uses an idiosyncratic escape code to set the cursor shape and does
|
// Konsole uses an idiosyncratic escape code to set the cursor shape and
|
||||||
// not support DECSCUSR. The tmux wrapping is unused, now.
|
// does not support DECSCUSR. This makes Konsole set up and apply a
|
||||||
|
// nonce profile, which has side-effects on temporary font resizing.
|
||||||
|
// In an ideal world, Konsole would just support DECSCUSR.
|
||||||
data->unibi_ext.set_cursor_style = (int)unibi_add_ext_str(ut, "Ss",
|
data->unibi_ext.set_cursor_style = (int)unibi_add_ext_str(ut, "Ss",
|
||||||
TMUX_WRAP(tmux_wrap, "\x1b]50;CursorShape=%?"
|
"\x1b]50;CursorShape=%?"
|
||||||
"%p1%{3}%<" "%t%{0}" // block
|
"%p1%{3}%<" "%t%{0}" // block
|
||||||
"%e%p1%{4}%<" "%t%{2}" // underline
|
"%e%p1%{4}%<" "%t%{2}" // underline
|
||||||
"%e%{1}" // everything else is bar
|
"%e%{1}" // everything else is bar
|
||||||
"%;%d;BlinkingCursorEnabled=%?"
|
"%;%d;BlinkingCursorEnabled=%?"
|
||||||
"%p1%{1}%<" "%t%{1}" // Fortunately if we exclude zero as special,
|
"%p1%{1}%<" "%t%{1}" // Fortunately if we exclude zero as special,
|
||||||
"%e%p1%{1}%&" // in all other cases we can treat bit #0 as a flag.
|
"%e%p1%{1}%&" // in all other cases we can treat bit #0 as a flag.
|
||||||
"%;%d\x07"));
|
"%;%d\x07");
|
||||||
if (-1 == data->unibi_ext.reset_cursor_style) {
|
if (-1 == data->unibi_ext.reset_cursor_style) {
|
||||||
data->unibi_ext.reset_cursor_style = (int)unibi_add_ext_str(ut, "Se",
|
data->unibi_ext.reset_cursor_style = (int)unibi_add_ext_str(ut, "Se",
|
||||||
"");
|
"");
|
||||||
}
|
}
|
||||||
unibi_set_ext_str(ut, (size_t)data->unibi_ext.reset_cursor_style,
|
unibi_set_ext_str(ut, (size_t)data->unibi_ext.reset_cursor_style,
|
||||||
TMUX_WRAP(tmux_wrap, "\x1b]50;CursorShape=0;BlinkingCursorEnabled=1\x07"));
|
"\x1b]50;\x07");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -2601,6 +2609,9 @@ static void augment_terminfo(TUIData *data, const char *term,
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (iterm) {
|
if (iterm) {
|
||||||
|
// FIXME: Bypassing tmux like this affects the cursor colour globally, in
|
||||||
|
// all panes, which is not particularly desirable. A better approach
|
||||||
|
// would use a tmux control sequence and an extra if(screen) test.
|
||||||
data->unibi_ext.set_cursor_color = (int)unibi_add_ext_str(
|
data->unibi_ext.set_cursor_color = (int)unibi_add_ext_str(
|
||||||
ut, NULL, TMUX_WRAP(tmux_wrap, "\033]Pl%p1%06x\033\\"));
|
ut, NULL, TMUX_WRAP(tmux_wrap, "\033]Pl%p1%06x\033\\"));
|
||||||
} else if (xterm) {
|
} else if (xterm) {
|
||||||
|
Reference in New Issue
Block a user