aboutsummaryrefslogtreecommitdiff
path: root/options-table.c
diff options
context:
space:
mode:
Diffstat (limited to 'options-table.c')
-rw-r--r--options-table.c201
1 files changed, 138 insertions, 63 deletions
diff --git a/options-table.c b/options-table.c
index be0d220d..b4aa47e2 100644
--- a/options-table.c
+++ b/options-table.c
@@ -139,7 +139,7 @@ static const char *options_table_status_format_default[] = {
OPTIONS_TABLE_STATUS_FORMAT1, OPTIONS_TABLE_STATUS_FORMAT2, NULL
};
-/* Helper for hook options. */
+/* Helpers for hook options. */
#define OPTIONS_TABLE_HOOK(hook_name, default_value) \
{ .name = hook_name, \
.type = OPTIONS_TABLE_COMMAND, \
@@ -149,6 +149,24 @@ static const char *options_table_status_format_default[] = {
.separator = "" \
}
+#define OPTIONS_TABLE_PANE_HOOK(hook_name, default_value) \
+ { .name = hook_name, \
+ .type = OPTIONS_TABLE_COMMAND, \
+ .scope = OPTIONS_TABLE_WINDOW|OPTIONS_TABLE_PANE, \
+ .flags = OPTIONS_TABLE_IS_ARRAY|OPTIONS_TABLE_IS_HOOK, \
+ .default_str = default_value, \
+ .separator = "" \
+ }
+
+#define OPTIONS_TABLE_WINDOW_HOOK(hook_name, default_value) \
+ { .name = hook_name, \
+ .type = OPTIONS_TABLE_COMMAND, \
+ .scope = OPTIONS_TABLE_WINDOW, \
+ .flags = OPTIONS_TABLE_IS_ARRAY|OPTIONS_TABLE_IS_HOOK, \
+ .default_str = default_value, \
+ .separator = "" \
+ }
+
/* Top-level options. */
const struct options_table_entry options_table[] = {
/* Server options. */
@@ -179,12 +197,24 @@ const struct options_table_entry options_table[] = {
.separator = ","
},
+ { .name = "copy-command",
+ .type = OPTIONS_TABLE_STRING,
+ .scope = OPTIONS_TABLE_SERVER,
+ .default_str = ""
+ },
+
{ .name = "default-terminal",
.type = OPTIONS_TABLE_STRING,
.scope = OPTIONS_TABLE_SERVER,
.default_str = "screen"
},
+ { .name = "editor",
+ .type = OPTIONS_TABLE_STRING,
+ .scope = OPTIONS_TABLE_SERVER,
+ .default_str = _PATH_VI
+ },
+
{ .name = "escape-time",
.type = OPTIONS_TABLE_NUMBER,
.scope = OPTIONS_TABLE_SERVER,
@@ -236,9 +266,16 @@ const struct options_table_entry options_table[] = {
.type = OPTIONS_TABLE_STRING,
.scope = OPTIONS_TABLE_SERVER,
.flags = OPTIONS_TABLE_IS_ARRAY,
- .default_str = "xterm*:XT:Ms=\\E]52;%p1%s;%p2%s\\007"
- ":Cs=\\E]12;%p1%s\\007:Cr=\\E]112\\007"
- ":Ss=\\E[%p1%d q:Se=\\E[2 q,screen*:XT",
+ .default_str = "",
+ .separator = ","
+ },
+
+ { .name = "terminal-features",
+ .type = OPTIONS_TABLE_STRING,
+ .scope = OPTIONS_TABLE_SERVER,
+ .flags = OPTIONS_TABLE_IS_ARRAY,
+ .default_str = "xterm*:clipboard:ccolour:cstyle:title,"
+ "screen*:title",
.separator = ","
},
@@ -369,15 +406,19 @@ const struct options_table_entry options_table[] = {
},
{ .name = "message-command-style",
- .type = OPTIONS_TABLE_STYLE,
+ .type = OPTIONS_TABLE_STRING,
.scope = OPTIONS_TABLE_SESSION,
- .default_str = "bg=black,fg=yellow"
+ .default_str = "bg=black,fg=yellow",
+ .flags = OPTIONS_TABLE_IS_STYLE,
+ .separator = ","
},
{ .name = "message-style",
- .type = OPTIONS_TABLE_STYLE,
+ .type = OPTIONS_TABLE_STRING,
.scope = OPTIONS_TABLE_SESSION,
- .default_str = "bg=yellow,fg=black"
+ .default_str = "bg=yellow,fg=black",
+ .flags = OPTIONS_TABLE_IS_STYLE,
+ .separator = ","
},
{ .name = "mouse",
@@ -441,13 +482,13 @@ const struct options_table_entry options_table[] = {
{ .name = "status-bg",
.type = OPTIONS_TABLE_COLOUR,
.scope = OPTIONS_TABLE_SESSION,
- .default_num = 2,
+ .default_num = 8,
},
{ .name = "status-fg",
.type = OPTIONS_TABLE_COLOUR,
.scope = OPTIONS_TABLE_SESSION,
- .default_num = 0,
+ .default_num = 8,
},
{ .name = "status-format",
@@ -494,9 +535,11 @@ const struct options_table_entry options_table[] = {
},
{ .name = "status-left-style",
- .type = OPTIONS_TABLE_STYLE,
+ .type = OPTIONS_TABLE_STRING,
.scope = OPTIONS_TABLE_SESSION,
- .default_str = "default"
+ .default_str = "default",
+ .flags = OPTIONS_TABLE_IS_STYLE,
+ .separator = ","
},
{ .name = "status-position",
@@ -523,15 +566,19 @@ const struct options_table_entry options_table[] = {
},
{ .name = "status-right-style",
- .type = OPTIONS_TABLE_STYLE,
+ .type = OPTIONS_TABLE_STRING,
.scope = OPTIONS_TABLE_SESSION,
- .default_str = "default"
+ .default_str = "default",
+ .flags = OPTIONS_TABLE_IS_STYLE,
+ .separator = ","
},
{ .name = "status-style",
- .type = OPTIONS_TABLE_STYLE,
+ .type = OPTIONS_TABLE_STRING,
.scope = OPTIONS_TABLE_SESSION,
- .default_str = "bg=green,fg=black"
+ .default_str = "bg=green,fg=black",
+ .flags = OPTIONS_TABLE_IS_STYLE,
+ .separator = ","
},
{ .name = "update-environment",
@@ -614,20 +661,32 @@ const struct options_table_entry options_table[] = {
.default_num = 1
},
+ { .name = "copy-mode-match-style",
+ .type = OPTIONS_TABLE_STRING,
+ .scope = OPTIONS_TABLE_WINDOW,
+ .default_str = "bg=cyan,fg=black",
+ .flags = OPTIONS_TABLE_IS_STYLE,
+ .separator = ","
+ },
+
+ { .name = "copy-mode-current-match-style",
+ .type = OPTIONS_TABLE_STRING,
+ .scope = OPTIONS_TABLE_WINDOW,
+ .default_str = "bg=magenta,fg=black",
+ .flags = OPTIONS_TABLE_IS_STYLE,
+ .separator = ","
+ },
+
{ .name = "main-pane-height",
- .type = OPTIONS_TABLE_NUMBER,
+ .type = OPTIONS_TABLE_STRING,
.scope = OPTIONS_TABLE_WINDOW,
- .minimum = 1,
- .maximum = INT_MAX,
- .default_num = 24
+ .default_str = "24"
},
{ .name = "main-pane-width",
- .type = OPTIONS_TABLE_NUMBER,
+ .type = OPTIONS_TABLE_STRING,
.scope = OPTIONS_TABLE_WINDOW,
- .minimum = 1,
- .maximum = INT_MAX,
- .default_num = 80
+ .default_str = "80"
},
{ .name = "mode-keys",
@@ -638,9 +697,11 @@ const struct options_table_entry options_table[] = {
},
{ .name = "mode-style",
- .type = OPTIONS_TABLE_STYLE,
+ .type = OPTIONS_TABLE_STRING,
.scope = OPTIONS_TABLE_WINDOW,
- .default_str = "bg=yellow,fg=black"
+ .default_str = "bg=yellow,fg=black",
+ .flags = OPTIONS_TABLE_IS_STYLE,
+ .separator = ","
},
{ .name = "monitor-activity",
@@ -664,25 +725,23 @@ const struct options_table_entry options_table[] = {
},
{ .name = "other-pane-height",
- .type = OPTIONS_TABLE_NUMBER,
+ .type = OPTIONS_TABLE_STRING,
.scope = OPTIONS_TABLE_WINDOW,
- .minimum = 0,
- .maximum = INT_MAX,
- .default_num = 0
+ .default_str = "0"
},
{ .name = "other-pane-width",
- .type = OPTIONS_TABLE_NUMBER,
+ .type = OPTIONS_TABLE_STRING,
.scope = OPTIONS_TABLE_WINDOW,
- .minimum = 0,
- .maximum = INT_MAX,
- .default_num = 0
+ .default_str = "0"
},
{ .name = "pane-active-border-style",
- .type = OPTIONS_TABLE_STYLE,
+ .type = OPTIONS_TABLE_STRING,
.scope = OPTIONS_TABLE_WINDOW,
- .default_str = "fg=green"
+ .default_str = "#{?pane_in_mode,fg=yellow,#{?synchronize-panes,fg=red,fg=green}}",
+ .flags = OPTIONS_TABLE_IS_STYLE,
+ .separator = ","
},
{ .name = "pane-base-index",
@@ -708,9 +767,11 @@ const struct options_table_entry options_table[] = {
},
{ .name = "pane-border-style",
- .type = OPTIONS_TABLE_STYLE,
+ .type = OPTIONS_TABLE_STRING,
.scope = OPTIONS_TABLE_WINDOW,
- .default_str = "default"
+ .default_str = "default",
+ .flags = OPTIONS_TABLE_IS_STYLE,
+ .separator = ","
},
{ .name = "remain-on-exit",
@@ -726,9 +787,11 @@ const struct options_table_entry options_table[] = {
},
{ .name = "window-active-style",
- .type = OPTIONS_TABLE_STYLE,
+ .type = OPTIONS_TABLE_STRING,
.scope = OPTIONS_TABLE_WINDOW|OPTIONS_TABLE_PANE,
- .default_str = "default"
+ .default_str = "default",
+ .flags = OPTIONS_TABLE_IS_STYLE,
+ .separator = ","
},
{ .name = "window-size",
@@ -739,21 +802,27 @@ const struct options_table_entry options_table[] = {
},
{ .name = "window-style",
- .type = OPTIONS_TABLE_STYLE,
+ .type = OPTIONS_TABLE_STRING,
.scope = OPTIONS_TABLE_WINDOW|OPTIONS_TABLE_PANE,
- .default_str = "default"
+ .default_str = "default",
+ .flags = OPTIONS_TABLE_IS_STYLE,
+ .separator = ","
},
{ .name = "window-status-activity-style",
- .type = OPTIONS_TABLE_STYLE,
+ .type = OPTIONS_TABLE_STRING,
.scope = OPTIONS_TABLE_WINDOW,
- .default_str = "reverse"
+ .default_str = "reverse",
+ .flags = OPTIONS_TABLE_IS_STYLE,
+ .separator = ","
},
{ .name = "window-status-bell-style",
- .type = OPTIONS_TABLE_STYLE,
+ .type = OPTIONS_TABLE_STRING,
.scope = OPTIONS_TABLE_WINDOW,
- .default_str = "reverse"
+ .default_str = "reverse",
+ .flags = OPTIONS_TABLE_IS_STYLE,
+ .separator = ","
},
{ .name = "window-status-current-format",
@@ -763,9 +832,11 @@ const struct options_table_entry options_table[] = {
},
{ .name = "window-status-current-style",
- .type = OPTIONS_TABLE_STYLE,
+ .type = OPTIONS_TABLE_STRING,
.scope = OPTIONS_TABLE_WINDOW,
- .default_str = "default"
+ .default_str = "default",
+ .flags = OPTIONS_TABLE_IS_STYLE,
+ .separator = ","
},
{ .name = "window-status-format",
@@ -775,9 +846,11 @@ const struct options_table_entry options_table[] = {
},
{ .name = "window-status-last-style",
- .type = OPTIONS_TABLE_STYLE,
+ .type = OPTIONS_TABLE_STRING,
.scope = OPTIONS_TABLE_WINDOW,
- .default_str = "default"
+ .default_str = "default",
+ .flags = OPTIONS_TABLE_IS_STYLE,
+ .separator = ","
},
{ .name = "window-status-separator",
@@ -787,9 +860,11 @@ const struct options_table_entry options_table[] = {
},
{ .name = "window-status-style",
- .type = OPTIONS_TABLE_STYLE,
+ .type = OPTIONS_TABLE_STRING,
.scope = OPTIONS_TABLE_WINDOW,
- .default_str = "default"
+ .default_str = "default",
+ .flags = OPTIONS_TABLE_IS_STYLE,
+ .separator = ","
},
{ .name = "wrap-search",
@@ -850,21 +925,21 @@ const struct options_table_entry options_table[] = {
OPTIONS_TABLE_HOOK("client-detached", ""),
OPTIONS_TABLE_HOOK("client-resized", ""),
OPTIONS_TABLE_HOOK("client-session-changed", ""),
- OPTIONS_TABLE_HOOK("pane-died", ""),
- OPTIONS_TABLE_HOOK("pane-exited", ""),
- OPTIONS_TABLE_HOOK("pane-focus-in", ""),
- OPTIONS_TABLE_HOOK("pane-focus-out", ""),
- OPTIONS_TABLE_HOOK("pane-mode-changed", ""),
- OPTIONS_TABLE_HOOK("pane-set-clipboard", ""),
+ OPTIONS_TABLE_PANE_HOOK("pane-died", ""),
+ OPTIONS_TABLE_PANE_HOOK("pane-exited", ""),
+ OPTIONS_TABLE_PANE_HOOK("pane-focus-in", ""),
+ OPTIONS_TABLE_PANE_HOOK("pane-focus-out", ""),
+ OPTIONS_TABLE_PANE_HOOK("pane-mode-changed", ""),
+ OPTIONS_TABLE_PANE_HOOK("pane-set-clipboard", ""),
OPTIONS_TABLE_HOOK("session-closed", ""),
OPTIONS_TABLE_HOOK("session-created", ""),
OPTIONS_TABLE_HOOK("session-renamed", ""),
OPTIONS_TABLE_HOOK("session-window-changed", ""),
- OPTIONS_TABLE_HOOK("window-layout-changed", ""),
- OPTIONS_TABLE_HOOK("window-linked", ""),
- OPTIONS_TABLE_HOOK("window-pane-changed", ""),
- OPTIONS_TABLE_HOOK("window-renamed", ""),
- OPTIONS_TABLE_HOOK("window-unlinked", ""),
+ OPTIONS_TABLE_WINDOW_HOOK("window-layout-changed", ""),
+ OPTIONS_TABLE_WINDOW_HOOK("window-linked", ""),
+ OPTIONS_TABLE_WINDOW_HOOK("window-pane-changed", ""),
+ OPTIONS_TABLE_WINDOW_HOOK("window-renamed", ""),
+ OPTIONS_TABLE_WINDOW_HOOK("window-unlinked", ""),
{ .name = NULL }
};