recognize Contour via XTVERSION, and turn on quadrants/rgb for it #1781

pull/1786/head
nick black 3 years ago
parent c822aa345e
commit 7eedc7714d
No known key found for this signature in database
GPG Key ID: 5F43400C21CBFACC

@ -195,7 +195,7 @@ exporting the `COLORTERM` environment variable as `truecolor` or `24bit`.
Note that some terminals accept a 24-bit specification, but map it down to Note that some terminals accept a 24-bit specification, but map it down to
fewer colors. fewer colors.
Since 2.3.1, 8bpc RGB is always enabled for Kitty, Alacritty, and foot. TrueColor is always enabled for Kitty, Alacritty, Contour, and foot.
### Fonts ### Fonts

@ -171,7 +171,7 @@ implementing `rgb` use the 3x8bpc model; XTerm for instance:
Thus emitting `setaf` with an RGB value close to black can result, when Thus emitting `setaf` with an RGB value close to black can result, when
using `xterm-direct`'s `setaf` and `rgb` definitions, in a bright ANSI color. using `xterm-direct`'s `setaf` and `rgb` definitions, in a bright ANSI color.
Since 2.3.1, DirectColor is always enabled for Kitty, Alacritty, and foot. DirectColor is always enabled for Kitty, Alacritty, Contour, and foot.
## Problematic characters ## Problematic characters

@ -726,6 +726,8 @@ stash_string(init_state* inits){
inits->qterm = TERMINAL_XTERM; inits->qterm = TERMINAL_XTERM;
}else if(strncmp(inits->runstring, "WezTerm ", strlen("WezTerm ")) == 0){ }else if(strncmp(inits->runstring, "WezTerm ", strlen("WezTerm ")) == 0){
inits->qterm = TERMINAL_WEZTERM; inits->qterm = TERMINAL_WEZTERM;
}else if(strncmp(inits->runstring, "contour ", strlen("contour ")) == 0){
inits->qterm = TERMINAL_CONTOUR;
} }
break; break;
}case STATE_XTGETTCAP_TERMNAME1: }case STATE_XTGETTCAP_TERMNAME1:

@ -134,6 +134,10 @@ apply_term_heuristics(tinfo* ti, const char* termname, int fd,
} }
}else if(qterm == TERMINAL_XTERM){ }else if(qterm == TERMINAL_XTERM){
termname = "XTerm"; termname = "XTerm";
}else if(qterm == TERMINAL_CONTOUR){
termname = "Contour";
ti->quadrants = true;
ti->RGBflag = true;
}else if(strcmp(termname, "linux") == 0){ }else if(strcmp(termname, "linux") == 0){
termname = "Linux console"; termname = "Linux console";
ti->braille = false; // no braille, no sextants in linux console ti->braille = false; // no braille, no sextants in linux console

@ -175,8 +175,9 @@ typedef enum {
TERMINAL_KITTY, // XTGETTCAP['TN'] == 'xterm-kitty' TERMINAL_KITTY, // XTGETTCAP['TN'] == 'xterm-kitty'
TERMINAL_FOOT, // TDA: "\EP!|464f4f54\E\\" TERMINAL_FOOT, // TDA: "\EP!|464f4f54\E\\"
TERMINAL_MLTERM, // XTGETTCAP['TN'] == 'mlterm' TERMINAL_MLTERM, // XTGETTCAP['TN'] == 'mlterm'
TERMINAL_WEZTERM, TERMINAL_WEZTERM, // XTVERSION == 'WezTerm *'
TERMINAL_ALACRITTY, // can't be detected; match TERM TERMINAL_ALACRITTY, // can't be detected; match TERM
TERMINAL_CONTOUR, // XTVERSION == 'console *'
} queried_terminals_e; } queried_terminals_e;
#ifdef __cplusplus #ifdef __cplusplus

Loading…
Cancel
Save