Add noattr and use in mode-style to allow whether attributes are ignored

or used to be configured. GitHub issue 4498.
This commit is contained in:
nicm
2025-06-20 14:54:33 +00:00
parent 522652913f
commit ad3e6ff054
4 changed files with 7 additions and 4 deletions

View File

@ -1103,7 +1103,7 @@ const struct options_table_entry options_table[] = {
.type = OPTIONS_TABLE_STRING,
.scope = OPTIONS_TABLE_WINDOW,
.flags = OPTIONS_TABLE_IS_STYLE,
.default_str = "bg=yellow,fg=black",
.default_str = "noattr,bg=yellow,fg=black",
.separator = ",",
.text = "Style of indicators and highlighting in modes."
},

View File

@ -577,8 +577,7 @@ screen_select_cell(struct screen *s, struct grid_cell *dst,
if (COLOUR_DEFAULT(dst->bg))
dst->bg = src->bg;
utf8_copy(&dst->data, &src->data);
dst->attr = dst->attr & ~GRID_ATTR_CHARSET;
dst->attr |= src->attr & GRID_ATTR_CHARSET;
dst->attr = src->attr;
dst->flags = src->flags;
}

View File

@ -217,7 +217,9 @@ style_parse(struct style *sy, const struct grid_cell *base, const char *in)
} else if (strcasecmp(tmp, "none") == 0)
sy->gc.attr = 0;
else if (end > 2 && strncasecmp(tmp, "no", 2) == 0) {
if ((value = attributes_fromstring(tmp + 2)) == -1)
if (strcmp(tmp + 2, "attr") == 0)
value = 0xffff & ~GRID_ATTR_CHARSET;
else if ((value = attributes_fromstring(tmp + 2)) == -1)
goto error;
sy->gc.attr &= ~value;
} else if (end > 6 && strncasecmp(tmp, "width=", 6) == 0) {

2
tmux.1
View File

@ -6305,6 +6305,8 @@ and
.Ic list=right-marker
mark the text to be used to mark that text has been trimmed from the left or
right of the list if there is not enough space.
.It Ic noattr
Do not copy attributes from the default style.
.It Xo Ic push-default ,
.Ic pop-default
.Xc