mirror of
https://github.com/tmux/tmux.git
synced 2025-09-02 05:21:10 +00:00
Allow replacing each of the many sets of separate foo-{fg,bg,attr}
options with a single foo-style option. For example: set -g status-fg yellow set -g status-bg red set -g status-attr blink Becomes: set -g status-style fg=yellow,bg=red,blink The -a flag to set can be used to add to rather than replace a style. So: set -g status-bg red Becomes: set -ag status-style bg=red Currently this is fully backwards compatible (all *-{fg,bg,attr} options remain) but the plan is to deprecate them over time. From Tiago Cunha.
This commit is contained in:
269
options-table.c
269
options-table.c
@ -196,32 +196,43 @@ const struct options_table_entry session_options_table[] = {
|
||||
|
||||
{ .name = "message-attr",
|
||||
.type = OPTIONS_TABLE_ATTRIBUTES,
|
||||
.default_num = 0
|
||||
.default_num = 0,
|
||||
.style = "message-style"
|
||||
},
|
||||
|
||||
{ .name = "message-bg",
|
||||
.type = OPTIONS_TABLE_COLOUR,
|
||||
.default_num = 3
|
||||
.default_num = 3,
|
||||
.style = "message-style"
|
||||
},
|
||||
|
||||
{ .name = "message-command-attr",
|
||||
.type = OPTIONS_TABLE_ATTRIBUTES,
|
||||
.default_num = 0
|
||||
.default_num = 0,
|
||||
.style = "message-command-style"
|
||||
},
|
||||
|
||||
{ .name = "message-command-bg",
|
||||
.type = OPTIONS_TABLE_COLOUR,
|
||||
.default_num = 0
|
||||
.default_num = 0,
|
||||
.style = "message-command-style"
|
||||
},
|
||||
|
||||
{ .name = "message-command-fg",
|
||||
.type = OPTIONS_TABLE_COLOUR,
|
||||
.default_num = 3
|
||||
.default_num = 3,
|
||||
.style = "message-command-style"
|
||||
},
|
||||
|
||||
{ .name = "message-command-style",
|
||||
.type = OPTIONS_TABLE_STYLE,
|
||||
.default_str = "bg=black,fg=yellow"
|
||||
},
|
||||
|
||||
{ .name = "message-fg",
|
||||
.type = OPTIONS_TABLE_COLOUR,
|
||||
.default_num = 0
|
||||
.default_num = 0,
|
||||
.style = "message-style"
|
||||
},
|
||||
|
||||
{ .name = "message-limit",
|
||||
@ -231,6 +242,11 @@ const struct options_table_entry session_options_table[] = {
|
||||
.default_num = 20
|
||||
},
|
||||
|
||||
{ .name = "message-style",
|
||||
.type = OPTIONS_TABLE_STYLE,
|
||||
.default_str = "bg=yellow,fg=black"
|
||||
},
|
||||
|
||||
{ .name = "mouse-resize-pane",
|
||||
.type = OPTIONS_TABLE_FLAG,
|
||||
.default_num = 0
|
||||
@ -253,22 +269,36 @@ const struct options_table_entry session_options_table[] = {
|
||||
|
||||
{ .name = "pane-active-border-bg",
|
||||
.type = OPTIONS_TABLE_COLOUR,
|
||||
.default_num = 8
|
||||
.default_num = 8,
|
||||
.style = "pane-active-border-style"
|
||||
},
|
||||
|
||||
{ .name = "pane-active-border-fg",
|
||||
.type = OPTIONS_TABLE_COLOUR,
|
||||
.default_num = 2
|
||||
.default_num = 2,
|
||||
.style = "pane-active-border-style"
|
||||
},
|
||||
|
||||
{ .name = "pane-active-border-style",
|
||||
.type = OPTIONS_TABLE_STYLE,
|
||||
.default_str = "fg=green"
|
||||
},
|
||||
|
||||
{ .name = "pane-border-bg",
|
||||
.type = OPTIONS_TABLE_COLOUR,
|
||||
.default_num = 8
|
||||
.default_num = 8,
|
||||
.style = "pane-border-style"
|
||||
},
|
||||
|
||||
{ .name = "pane-border-fg",
|
||||
.type = OPTIONS_TABLE_COLOUR,
|
||||
.default_num = 8
|
||||
.default_num = 8,
|
||||
.style = "pane-border-style"
|
||||
},
|
||||
|
||||
{ .name = "pane-border-style",
|
||||
.type = OPTIONS_TABLE_STYLE,
|
||||
.default_str = "default"
|
||||
},
|
||||
|
||||
{ .name = "prefix",
|
||||
@ -315,17 +345,20 @@ const struct options_table_entry session_options_table[] = {
|
||||
|
||||
{ .name = "status-attr",
|
||||
.type = OPTIONS_TABLE_ATTRIBUTES,
|
||||
.default_num = 0
|
||||
.default_num = 0,
|
||||
.style = "status-style"
|
||||
},
|
||||
|
||||
{ .name = "status-bg",
|
||||
.type = OPTIONS_TABLE_COLOUR,
|
||||
.default_num = 2
|
||||
.default_num = 2,
|
||||
.style = "status-style"
|
||||
},
|
||||
|
||||
{ .name = "status-fg",
|
||||
.type = OPTIONS_TABLE_COLOUR,
|
||||
.default_num = 0
|
||||
.default_num = 0,
|
||||
.style = "status-style"
|
||||
},
|
||||
|
||||
{ .name = "status-interval",
|
||||
@ -354,17 +387,20 @@ const struct options_table_entry session_options_table[] = {
|
||||
|
||||
{ .name = "status-left-attr",
|
||||
.type = OPTIONS_TABLE_ATTRIBUTES,
|
||||
.default_num = 0
|
||||
.default_num = 0,
|
||||
.style = "status-left-style"
|
||||
},
|
||||
|
||||
{ .name = "status-left-bg",
|
||||
.type = OPTIONS_TABLE_COLOUR,
|
||||
.default_num = 8
|
||||
.default_num = 8,
|
||||
.style = "status-left-style"
|
||||
},
|
||||
|
||||
{ .name = "status-left-fg",
|
||||
.type = OPTIONS_TABLE_COLOUR,
|
||||
.default_num = 8
|
||||
.default_num = 8,
|
||||
.style = "status-left-style"
|
||||
},
|
||||
|
||||
{ .name = "status-left-length",
|
||||
@ -374,6 +410,11 @@ const struct options_table_entry session_options_table[] = {
|
||||
.default_num = 10
|
||||
},
|
||||
|
||||
{ .name = "status-left-style",
|
||||
.type = OPTIONS_TABLE_STYLE,
|
||||
.default_str = "default"
|
||||
},
|
||||
|
||||
{ .name = "status-position",
|
||||
.type = OPTIONS_TABLE_CHOICE,
|
||||
.choices = options_table_status_position_list,
|
||||
@ -387,17 +428,20 @@ const struct options_table_entry session_options_table[] = {
|
||||
|
||||
{ .name = "status-right-attr",
|
||||
.type = OPTIONS_TABLE_ATTRIBUTES,
|
||||
.default_num = 0
|
||||
.default_num = 0,
|
||||
.style = "status-right-style"
|
||||
},
|
||||
|
||||
{ .name = "status-right-bg",
|
||||
.type = OPTIONS_TABLE_COLOUR,
|
||||
.default_num = 8
|
||||
.default_num = 8,
|
||||
.style = "status-right-style"
|
||||
},
|
||||
|
||||
{ .name = "status-right-fg",
|
||||
.type = OPTIONS_TABLE_COLOUR,
|
||||
.default_num = 8
|
||||
.default_num = 8,
|
||||
.style = "status-right-style"
|
||||
},
|
||||
|
||||
{ .name = "status-right-length",
|
||||
@ -407,6 +451,16 @@ const struct options_table_entry session_options_table[] = {
|
||||
.default_num = 40
|
||||
},
|
||||
|
||||
{ .name = "status-right-style",
|
||||
.type = OPTIONS_TABLE_STYLE,
|
||||
.default_str = "default"
|
||||
},
|
||||
|
||||
{ .name = "status-style",
|
||||
.type = OPTIONS_TABLE_STYLE,
|
||||
.default_str = "bg=green,fg=black"
|
||||
},
|
||||
|
||||
{ .name = "status-utf8",
|
||||
.type = OPTIONS_TABLE_FLAG,
|
||||
.default_num = 0 /* overridden in main() */
|
||||
@ -537,17 +591,20 @@ const struct options_table_entry window_options_table[] = {
|
||||
|
||||
{ .name = "mode-attr",
|
||||
.type = OPTIONS_TABLE_ATTRIBUTES,
|
||||
.default_num = 0
|
||||
.default_num = 0,
|
||||
.style = "mode-style"
|
||||
},
|
||||
|
||||
{ .name = "mode-bg",
|
||||
.type = OPTIONS_TABLE_COLOUR,
|
||||
.default_num = 3
|
||||
.default_num = 3,
|
||||
.style = "mode-style"
|
||||
},
|
||||
|
||||
{ .name = "mode-fg",
|
||||
.type = OPTIONS_TABLE_COLOUR,
|
||||
.default_num = 0
|
||||
.default_num = 0,
|
||||
.style = "mode-style"
|
||||
},
|
||||
|
||||
{ .name = "mode-keys",
|
||||
@ -562,6 +619,11 @@ const struct options_table_entry window_options_table[] = {
|
||||
.default_num = 0
|
||||
},
|
||||
|
||||
{ .name = "mode-style",
|
||||
.type = OPTIONS_TABLE_STYLE,
|
||||
.default_str = "bg=yellow,fg=black"
|
||||
},
|
||||
|
||||
{ .name = "monitor-activity",
|
||||
.type = OPTIONS_TABLE_FLAG,
|
||||
.default_num = 0
|
||||
@ -617,72 +679,101 @@ const struct options_table_entry window_options_table[] = {
|
||||
|
||||
{ .name = "window-status-activity-attr",
|
||||
.type = OPTIONS_TABLE_ATTRIBUTES,
|
||||
.default_num = GRID_ATTR_REVERSE
|
||||
.default_num = GRID_ATTR_REVERSE,
|
||||
.style = "window-status-activity-style"
|
||||
},
|
||||
|
||||
{ .name = "window-status-activity-bg",
|
||||
.type = OPTIONS_TABLE_COLOUR,
|
||||
.default_num = 8
|
||||
.default_num = 8,
|
||||
.style = "window-status-activity-style"
|
||||
},
|
||||
|
||||
{ .name = "window-status-activity-fg",
|
||||
.type = OPTIONS_TABLE_COLOUR,
|
||||
.default_num = 8
|
||||
.default_num = 8,
|
||||
.style = "window-status-activity-style"
|
||||
},
|
||||
|
||||
{ .name = "window-status-bell-attr",
|
||||
.type = OPTIONS_TABLE_ATTRIBUTES,
|
||||
.default_num = GRID_ATTR_REVERSE
|
||||
},
|
||||
|
||||
{ .name = "window-status-bell-bg",
|
||||
.type = OPTIONS_TABLE_COLOUR,
|
||||
.default_num = 8
|
||||
},
|
||||
|
||||
{ .name = "window-status-bell-fg",
|
||||
.type = OPTIONS_TABLE_COLOUR,
|
||||
.default_num = 8
|
||||
},
|
||||
|
||||
{ .name = "window-status-content-attr",
|
||||
.type = OPTIONS_TABLE_ATTRIBUTES,
|
||||
.default_num = GRID_ATTR_REVERSE
|
||||
},
|
||||
|
||||
{ .name = "window-status-content-bg",
|
||||
.type = OPTIONS_TABLE_COLOUR,
|
||||
.default_num = 8
|
||||
},
|
||||
|
||||
{ .name = "window-status-content-fg",
|
||||
.type = OPTIONS_TABLE_COLOUR,
|
||||
.default_num = 8
|
||||
{ .name = "window-status-activity-style",
|
||||
.type = OPTIONS_TABLE_STYLE,
|
||||
.default_str = "reverse"
|
||||
},
|
||||
|
||||
{ .name = "window-status-attr",
|
||||
.type = OPTIONS_TABLE_ATTRIBUTES,
|
||||
.default_num = 0
|
||||
.default_num = 0,
|
||||
.style = "window-status-style"
|
||||
},
|
||||
|
||||
{ .name = "window-status-bell-attr",
|
||||
.type = OPTIONS_TABLE_ATTRIBUTES,
|
||||
.default_num = GRID_ATTR_REVERSE,
|
||||
.style = "window-status-bell-style"
|
||||
},
|
||||
|
||||
{ .name = "window-status-bell-bg",
|
||||
.type = OPTIONS_TABLE_COLOUR,
|
||||
.default_num = 8,
|
||||
.style = "window-status-bell-style"
|
||||
},
|
||||
|
||||
{ .name = "window-status-bell-fg",
|
||||
.type = OPTIONS_TABLE_COLOUR,
|
||||
.default_num = 8,
|
||||
.style = "window-status-bell-style"
|
||||
},
|
||||
|
||||
{ .name = "window-status-bell-style",
|
||||
.type = OPTIONS_TABLE_STYLE,
|
||||
.default_str = "reverse"
|
||||
},
|
||||
|
||||
{ .name = "window-status-bg",
|
||||
.type = OPTIONS_TABLE_COLOUR,
|
||||
.default_num = 8
|
||||
.default_num = 8,
|
||||
.style = "window-status-style"
|
||||
},
|
||||
|
||||
{ .name = "window-status-content-attr",
|
||||
.type = OPTIONS_TABLE_ATTRIBUTES,
|
||||
.default_num = GRID_ATTR_REVERSE,
|
||||
.style = "window-status-content-style"
|
||||
},
|
||||
|
||||
{ .name = "window-status-content-bg",
|
||||
.type = OPTIONS_TABLE_COLOUR,
|
||||
.default_num = 8,
|
||||
.style = "window-status-content-style"
|
||||
},
|
||||
|
||||
{ .name = "window-status-content-fg",
|
||||
.type = OPTIONS_TABLE_COLOUR,
|
||||
.default_num = 8,
|
||||
.style = "window-status-content-style"
|
||||
},
|
||||
|
||||
{ .name = "window-status-content-style",
|
||||
.type = OPTIONS_TABLE_STYLE,
|
||||
.default_str = "reverse"
|
||||
},
|
||||
|
||||
{ .name = "window-status-current-attr",
|
||||
.type = OPTIONS_TABLE_ATTRIBUTES,
|
||||
.default_num = 0
|
||||
.default_num = 0,
|
||||
.style = "window-status-current-style"
|
||||
},
|
||||
|
||||
{ .name = "window-status-current-bg",
|
||||
.type = OPTIONS_TABLE_COLOUR,
|
||||
.default_num = 8
|
||||
.default_num = 8,
|
||||
.style = "window-status-current-style"
|
||||
},
|
||||
|
||||
{ .name = "window-status-current-fg",
|
||||
.type = OPTIONS_TABLE_COLOUR,
|
||||
.default_num = 8
|
||||
.default_num = 8,
|
||||
.style = "window-status-current-style"
|
||||
},
|
||||
|
||||
{ .name = "window-status-current-format",
|
||||
@ -690,24 +781,15 @@ const struct options_table_entry window_options_table[] = {
|
||||
.default_str = "#I:#W#F"
|
||||
},
|
||||
|
||||
{ .name = "window-status-last-attr",
|
||||
.type = OPTIONS_TABLE_ATTRIBUTES,
|
||||
.default_num = 0
|
||||
},
|
||||
|
||||
{ .name = "window-status-last-bg",
|
||||
.type = OPTIONS_TABLE_COLOUR,
|
||||
.default_num = 8
|
||||
},
|
||||
|
||||
{ .name = "window-status-last-fg",
|
||||
.type = OPTIONS_TABLE_COLOUR,
|
||||
.default_num = 8
|
||||
{ .name = "window-status-current-style",
|
||||
.type = OPTIONS_TABLE_STYLE,
|
||||
.default_str = "default"
|
||||
},
|
||||
|
||||
{ .name = "window-status-fg",
|
||||
.type = OPTIONS_TABLE_COLOUR,
|
||||
.default_num = 8
|
||||
.default_num = 8,
|
||||
.style = "window-status-style"
|
||||
},
|
||||
|
||||
{ .name = "window-status-format",
|
||||
@ -715,11 +797,39 @@ const struct options_table_entry window_options_table[] = {
|
||||
.default_str = "#I:#W#F"
|
||||
},
|
||||
|
||||
{ .name = "window-status-last-attr",
|
||||
.type = OPTIONS_TABLE_ATTRIBUTES,
|
||||
.default_num = 0,
|
||||
.style = "window-status-last-style"
|
||||
},
|
||||
|
||||
{ .name = "window-status-last-bg",
|
||||
.type = OPTIONS_TABLE_COLOUR,
|
||||
.default_num = 8,
|
||||
.style = "window-status-last-style"
|
||||
},
|
||||
|
||||
{ .name = "window-status-last-fg",
|
||||
.type = OPTIONS_TABLE_COLOUR,
|
||||
.default_num = 8,
|
||||
.style = "window-status-last-style"
|
||||
},
|
||||
|
||||
{ .name = "window-status-last-style",
|
||||
.type = OPTIONS_TABLE_STYLE,
|
||||
.default_str = "default"
|
||||
},
|
||||
|
||||
{ .name = "window-status-separator",
|
||||
.type = OPTIONS_TABLE_STRING,
|
||||
.default_str = " "
|
||||
},
|
||||
|
||||
{ .name = "window-status-style",
|
||||
.type = OPTIONS_TABLE_STYLE,
|
||||
.default_str = "default"
|
||||
},
|
||||
|
||||
{ .name = "wrap-search",
|
||||
.type = OPTIONS_TABLE_FLAG,
|
||||
.default_num = 1
|
||||
@ -741,10 +851,17 @@ options_table_populate_tree(
|
||||
const struct options_table_entry *oe;
|
||||
|
||||
for (oe = table; oe->name != NULL; oe++) {
|
||||
if (oe->default_str != NULL)
|
||||
switch (oe->type) {
|
||||
case OPTIONS_TABLE_STRING:
|
||||
options_set_string(oo, oe->name, "%s", oe->default_str);
|
||||
else
|
||||
break;
|
||||
case OPTIONS_TABLE_STYLE:
|
||||
options_set_style(oo, oe->name, oe->default_str);
|
||||
break;
|
||||
default:
|
||||
options_set_number(oo, oe->name, oe->default_num);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -789,6 +906,10 @@ options_table_print_entry(const struct options_table_entry *oe,
|
||||
s = oe->choices[o->num];
|
||||
xsnprintf(out, sizeof out, "%s", s);
|
||||
break;
|
||||
case OPTIONS_TABLE_STYLE:
|
||||
s = style_tostring(&o->style);
|
||||
xsnprintf(out, sizeof out, "%s", s);
|
||||
break;
|
||||
}
|
||||
return (out);
|
||||
}
|
||||
|
Reference in New Issue
Block a user