config: bold-text-in-bright: add ‘palette-based’ as a special value

When ‘bold-text-in-bright’ is set ‘to palette-based’, colors matching
one of the 8 regular palette colors are brightened by using the
corresponding bright palette color.

Other colors, or all colors if ‘bold-text-in-bright’ is set to
‘yes|true’, are brightened by increasing the luminance.
This commit is contained in:
Daniel Eklöf 2021-04-17 21:57:08 +02:00
parent 11e8ff9dc5
commit 1df48fcb33
No known key found for this signature in database
GPG key ID: 5BBD4992C116573F
5 changed files with 38 additions and 12 deletions

View file

@ -258,9 +258,11 @@ color_brighten(const struct terminal *term, uint32_t color)
* First try to match the color against the base 8 colors. If we
* find a match, return the corresponding bright color.
*/
for (size_t i = 0; i < 8; i++) {
if (term->colors.table[i] == color)
return term->colors.table[i + 8];
if (term->conf->bold_in_bright.palette_based) {
for (size_t i = 0; i < 8; i++) {
if (term->colors.table[i] == color)
return term->colors.table[i + 8];
}
}
int hue, sat, lum;
@ -443,7 +445,7 @@ render_cell(struct terminal *term, pixman_image_t *pix,
if (cell->attrs.dim)
_fg = color_dim(_fg);
if (term->conf->bold_in_bright && cell->attrs.bold)
if (term->conf->bold_in_bright.enabled && cell->attrs.bold)
_fg = color_brighten(term, _fg);
if (cell->attrs.blink && term->blink.state == BLINK_OFF)