diff --git a/options-table.c b/options-table.c index ad666ad5..cf54bfa4 100644 --- a/options-table.c +++ b/options-table.c @@ -1102,7 +1102,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." }, diff --git a/screen.c b/screen.c index feaf3c22..8bfb7071 100644 --- a/screen.c +++ b/screen.c @@ -593,8 +593,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; } diff --git a/style.c b/style.c index 4e4f6fcc..ef3bb225 100644 --- a/style.c +++ b/style.c @@ -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) { diff --git a/tmux.1 b/tmux.1 index dc49472f..d53587d0 100644 --- a/tmux.1 +++ b/tmux.1 @@ -6307,6 +6307,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