xref: /netbsd-src/external/bsd/tmux/dist/options-table.c (revision f8cf1a9151c7af1cb0bd8b09c13c66bca599c027)
15494e770Schristos /* $OpenBSD$ */
2d530c4d0Sjmmv 
3d530c4d0Sjmmv /*
4ed4e6cd4Schristos  * Copyright (c) 2011 Nicholas Marriott <nicholas.marriott@gmail.com>
5d530c4d0Sjmmv  *
6d530c4d0Sjmmv  * Permission to use, copy, modify, and distribute this software for any
7d530c4d0Sjmmv  * purpose with or without fee is hereby granted, provided that the above
8d530c4d0Sjmmv  * copyright notice and this permission notice appear in all copies.
9d530c4d0Sjmmv  *
10d530c4d0Sjmmv  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
11d530c4d0Sjmmv  * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
12d530c4d0Sjmmv  * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
13d530c4d0Sjmmv  * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
14d530c4d0Sjmmv  * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER
15d530c4d0Sjmmv  * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING
16d530c4d0Sjmmv  * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
17d530c4d0Sjmmv  */
18d530c4d0Sjmmv 
19d530c4d0Sjmmv #include <sys/types.h>
20d530c4d0Sjmmv 
21d530c4d0Sjmmv #include <string.h>
22d530c4d0Sjmmv 
23d530c4d0Sjmmv #include "tmux.h"
24d530c4d0Sjmmv 
25d530c4d0Sjmmv /*
26d530c4d0Sjmmv  * This file has a tables with all the server, session and window
27d530c4d0Sjmmv  * options. These tables are the master copy of the options with their real
28d530c4d0Sjmmv  * (user-visible) types, range limits and default values. At start these are
29d530c4d0Sjmmv  * copied into the runtime global options trees (which only has number and
305494e770Schristos  * string types). These tables are then used to look up the real type when the
315494e770Schristos  * user sets an option or its value needs to be shown.
32d530c4d0Sjmmv  */
33d530c4d0Sjmmv 
34d530c4d0Sjmmv /* Choice option type lists. */
354e179ddaSchristos static const char *options_table_mode_keys_list[] = {
36d530c4d0Sjmmv 	"emacs", "vi", NULL
37d530c4d0Sjmmv };
384e179ddaSchristos static const char *options_table_clock_mode_style_list[] = {
39d530c4d0Sjmmv 	"12", "24", NULL
40d530c4d0Sjmmv };
41ef36e747Schristos static const char *options_table_status_list[] = {
42ef36e747Schristos 	"off", "on", "2", "3", "4", "5", NULL
43ef36e747Schristos };
44c23f9150Swiz static const char *options_table_message_line_list[] = {
45c23f9150Swiz 	"0", "1", "2", "3", "4", NULL
46c23f9150Swiz };
474e179ddaSchristos static const char *options_table_status_keys_list[] = {
48d530c4d0Sjmmv 	"emacs", "vi", NULL
49d530c4d0Sjmmv };
504e179ddaSchristos static const char *options_table_status_justify_list[] = {
519fb66d81Schristos 	"left", "centre", "right", "absolute-centre", NULL
52d530c4d0Sjmmv };
534e179ddaSchristos static const char *options_table_status_position_list[] = {
54928fc495Schristos 	"top", "bottom", NULL
55928fc495Schristos };
564e179ddaSchristos static const char *options_table_bell_action_list[] = {
575494e770Schristos 	"none", "any", "current", "other", NULL
58d530c4d0Sjmmv };
59c9ad075bSchristos static const char *options_table_visual_bell_list[] = {
60c9ad075bSchristos 	"off", "on", "both", NULL
61c9ad075bSchristos };
626db26757Swiz static const char *options_table_cursor_style_list[] = {
636db26757Swiz 	"default", "blinking-block", "block", "blinking-underline", "underline",
646db26757Swiz 	"blinking-bar", "bar", NULL
656db26757Swiz };
664e179ddaSchristos static const char *options_table_pane_status_list[] = {
674e179ddaSchristos 	"off", "top", "bottom", NULL
684e179ddaSchristos };
696db26757Swiz static const char *options_table_pane_border_indicators_list[] = {
706db26757Swiz 	"off", "colour", "arrows", "both", NULL
716db26757Swiz };
726db26757Swiz static const char *options_table_pane_border_lines_list[] = {
739fb66d81Schristos 	"single", "double", "heavy", "simple", "number", NULL
749fb66d81Schristos };
756db26757Swiz static const char *options_table_popup_border_lines_list[] = {
766db26757Swiz 	"single", "double", "heavy", "simple", "rounded", "padded", "none", NULL
776db26757Swiz };
78c9ad075bSchristos static const char *options_table_set_clipboard_list[] = {
79c9ad075bSchristos 	"off", "external", "on", NULL
80c9ad075bSchristos };
81ef36e747Schristos static const char *options_table_window_size_list[] = {
82aa83ff61Schristos 	"largest", "smallest", "manual", "latest", NULL
83ef36e747Schristos };
849fb66d81Schristos static const char *options_table_remain_on_exit_list[] = {
859fb66d81Schristos 	"off", "on", "failed", NULL
869fb66d81Schristos };
87c23f9150Swiz static const char *options_table_destroy_unattached_list[] = {
88c23f9150Swiz 	"off", "on", "keep-last", "keep-group", NULL
89c23f9150Swiz };
909fb66d81Schristos static const char *options_table_detach_on_destroy_list[] = {
91c23f9150Swiz 	"off", "on", "no-detached", "previous", "next", NULL
929fb66d81Schristos };
93de7701e2Schristos static const char *options_table_extended_keys_list[] = {
94de7701e2Schristos 	"off", "on", "always", NULL
95de7701e2Schristos };
96*f8cf1a91Swiz static const char *options_table_extended_keys_format_list[] = {
97*f8cf1a91Swiz 	"csi-u", "xterm", NULL
98*f8cf1a91Swiz };
99c23f9150Swiz static const char *options_table_allow_passthrough_list[] = {
100c23f9150Swiz 	"off", "on", "all", NULL
101c23f9150Swiz };
102ef36e747Schristos 
103ef36e747Schristos /* Status line format. */
104ef36e747Schristos #define OPTIONS_TABLE_STATUS_FORMAT1 \
1056db26757Swiz 	"#[align=left range=left #{E:status-left-style}]" \
106aa83ff61Schristos 	"#[push-default]" \
107aa83ff61Schristos 	"#{T;=/#{status-left-length}:status-left}" \
108aa83ff61Schristos 	"#[pop-default]" \
109aa83ff61Schristos 	"#[norange default]" \
110ef36e747Schristos 	"#[list=on align=#{status-justify}]" \
111ef36e747Schristos 	"#[list=left-marker]<#[list=right-marker]>#[list=on]" \
112ef36e747Schristos 	"#{W:" \
113ef36e747Schristos 		"#[range=window|#{window_index} " \
1146db26757Swiz 			"#{E:window-status-style}" \
115ef36e747Schristos 			"#{?#{&&:#{window_last_flag}," \
1166db26757Swiz 				"#{!=:#{E:window-status-last-style},default}}, " \
1176db26757Swiz 				"#{E:window-status-last-style}," \
118ef36e747Schristos 			"}" \
119ef36e747Schristos 			"#{?#{&&:#{window_bell_flag}," \
1206db26757Swiz 				"#{!=:#{E:window-status-bell-style},default}}, " \
1216db26757Swiz 				"#{E:window-status-bell-style}," \
122ef36e747Schristos 				"#{?#{&&:#{||:#{window_activity_flag}," \
123ef36e747Schristos 					     "#{window_silence_flag}}," \
124ef36e747Schristos 					"#{!=:" \
1256db26757Swiz 					"#{E:window-status-activity-style}," \
126ef36e747Schristos 					"default}}, " \
1276db26757Swiz 					"#{E:window-status-activity-style}," \
128ef36e747Schristos 				"}" \
129ef36e747Schristos 			"}" \
130ef36e747Schristos 		"]" \
131aa83ff61Schristos 		"#[push-default]" \
132ef36e747Schristos 		"#{T:window-status-format}" \
133aa83ff61Schristos 		"#[pop-default]" \
134ef36e747Schristos 		"#[norange default]" \
135ef36e747Schristos 		"#{?window_end_flag,,#{window-status-separator}}" \
136ef36e747Schristos 	"," \
137ef36e747Schristos 		"#[range=window|#{window_index} list=focus " \
1386db26757Swiz 			"#{?#{!=:#{E:window-status-current-style},default}," \
1396db26757Swiz 				"#{E:window-status-current-style}," \
1406db26757Swiz 				"#{E:window-status-style}" \
141ef36e747Schristos 			"}" \
142ef36e747Schristos 			"#{?#{&&:#{window_last_flag}," \
1436db26757Swiz 				"#{!=:#{E:window-status-last-style},default}}, " \
1446db26757Swiz 				"#{E:window-status-last-style}," \
145ef36e747Schristos 			"}" \
146ef36e747Schristos 			"#{?#{&&:#{window_bell_flag}," \
1476db26757Swiz 				"#{!=:#{E:window-status-bell-style},default}}, " \
1486db26757Swiz 				"#{E:window-status-bell-style}," \
149ef36e747Schristos 				"#{?#{&&:#{||:#{window_activity_flag}," \
150ef36e747Schristos 					     "#{window_silence_flag}}," \
151ef36e747Schristos 					"#{!=:" \
1526db26757Swiz 					"#{E:window-status-activity-style}," \
153ef36e747Schristos 					"default}}, " \
1546db26757Swiz 					"#{E:window-status-activity-style}," \
155ef36e747Schristos 				"}" \
156ef36e747Schristos 			"}" \
157ef36e747Schristos 		"]" \
158aa83ff61Schristos 		"#[push-default]" \
159ef36e747Schristos 		"#{T:window-status-current-format}" \
160aa83ff61Schristos 		"#[pop-default]" \
161ef36e747Schristos 		"#[norange list=on default]" \
162ef36e747Schristos 		"#{?window_end_flag,,#{window-status-separator}}" \
163ef36e747Schristos 	"}" \
1646db26757Swiz 	"#[nolist align=right range=right #{E:status-right-style}]" \
165aa83ff61Schristos 	"#[push-default]" \
166aa83ff61Schristos 	"#{T;=/#{status-right-length}:status-right}" \
167aa83ff61Schristos 	"#[pop-default]" \
168aa83ff61Schristos 	"#[norange default]"
169ef36e747Schristos #define OPTIONS_TABLE_STATUS_FORMAT2 \
170ef36e747Schristos 	"#[align=centre]#{P:#{?pane_active,#[reverse],}" \
171ef36e747Schristos 	"#{pane_index}[#{pane_width}x#{pane_height}]#[default] }"
172ef36e747Schristos static const char *options_table_status_format_default[] = {
173ef36e747Schristos 	OPTIONS_TABLE_STATUS_FORMAT1, OPTIONS_TABLE_STATUS_FORMAT2, NULL
174ef36e747Schristos };
175d530c4d0Sjmmv 
1769fb66d81Schristos /* Helpers for hook options. */
1776483eba0Schristos #define OPTIONS_TABLE_HOOK(hook_name, default_value) \
1786483eba0Schristos 	{ .name = hook_name, \
1796483eba0Schristos 	  .type = OPTIONS_TABLE_COMMAND, \
1806483eba0Schristos 	  .scope = OPTIONS_TABLE_SESSION, \
1816483eba0Schristos 	  .flags = OPTIONS_TABLE_IS_ARRAY|OPTIONS_TABLE_IS_HOOK, \
1826483eba0Schristos 	  .default_str = default_value,	\
1836483eba0Schristos 	  .separator = "" \
1846483eba0Schristos 	}
1856483eba0Schristos 
1869fb66d81Schristos #define OPTIONS_TABLE_PANE_HOOK(hook_name, default_value) \
1879fb66d81Schristos 	{ .name = hook_name, \
1889fb66d81Schristos 	  .type = OPTIONS_TABLE_COMMAND, \
1899fb66d81Schristos 	  .scope = OPTIONS_TABLE_WINDOW|OPTIONS_TABLE_PANE, \
1909fb66d81Schristos 	  .flags = OPTIONS_TABLE_IS_ARRAY|OPTIONS_TABLE_IS_HOOK, \
1919fb66d81Schristos 	  .default_str = default_value,	\
1929fb66d81Schristos 	  .separator = "" \
1939fb66d81Schristos 	}
1949fb66d81Schristos 
1959fb66d81Schristos #define OPTIONS_TABLE_WINDOW_HOOK(hook_name, default_value) \
1969fb66d81Schristos 	{ .name = hook_name, \
1979fb66d81Schristos 	  .type = OPTIONS_TABLE_COMMAND, \
1989fb66d81Schristos 	  .scope = OPTIONS_TABLE_WINDOW, \
1999fb66d81Schristos 	  .flags = OPTIONS_TABLE_IS_ARRAY|OPTIONS_TABLE_IS_HOOK, \
2009fb66d81Schristos 	  .default_str = default_value,	\
2019fb66d81Schristos 	  .separator = "" \
2029fb66d81Schristos 	}
2039fb66d81Schristos 
2049fb66d81Schristos /* Map of name conversions. */
2059fb66d81Schristos const struct options_name_map options_other_names[] = {
2069fb66d81Schristos 	{ "display-panes-color", "display-panes-colour" },
2079fb66d81Schristos 	{ "display-panes-active-color", "display-panes-active-colour" },
2089fb66d81Schristos 	{ "clock-mode-color", "clock-mode-colour" },
2096db26757Swiz 	{ "cursor-color", "cursor-colour" },
2106db26757Swiz 	{ "pane-colors", "pane-colours" },
2119fb66d81Schristos 	{ NULL, NULL }
2129fb66d81Schristos };
2139fb66d81Schristos 
2144e179ddaSchristos /* Top-level options. */
215ed4e6cd4Schristos const struct options_table_entry options_table[] = {
2166483eba0Schristos 	/* Server options. */
217aa83ff61Schristos 	{ .name = "backspace",
218aa83ff61Schristos 	  .type = OPTIONS_TABLE_KEY,
219aa83ff61Schristos 	  .scope = OPTIONS_TABLE_SERVER,
220aa83ff61Schristos 	  .default_num = '\177',
2219fb66d81Schristos 	  .text = "The key to send for backspace."
222aa83ff61Schristos 	},
223aa83ff61Schristos 
224d530c4d0Sjmmv 	{ .name = "buffer-limit",
225d530c4d0Sjmmv 	  .type = OPTIONS_TABLE_NUMBER,
226ed4e6cd4Schristos 	  .scope = OPTIONS_TABLE_SERVER,
227d530c4d0Sjmmv 	  .minimum = 1,
228d530c4d0Sjmmv 	  .maximum = INT_MAX,
2299fb66d81Schristos 	  .default_num = 50,
2309fb66d81Schristos 	  .text = "The maximum number of automatic buffers. "
2319fb66d81Schristos 		  "When this is reached, the oldest buffer is deleted."
232d530c4d0Sjmmv 	},
233d530c4d0Sjmmv 
2344e179ddaSchristos 	{ .name = "command-alias",
2356483eba0Schristos 	  .type = OPTIONS_TABLE_STRING,
2364e179ddaSchristos 	  .scope = OPTIONS_TABLE_SERVER,
2376483eba0Schristos 	  .flags = OPTIONS_TABLE_IS_ARRAY,
2384e179ddaSchristos 	  .default_str = "split-pane=split-window,"
2394e179ddaSchristos 			 "splitp=split-window,"
2404e179ddaSchristos 			 "server-info=show-messages -JT,"
241c9ad075bSchristos 			 "info=show-messages -JT,"
242c9ad075bSchristos 			 "choose-window=choose-tree -w,"
243c9ad075bSchristos 			 "choose-session=choose-tree -s",
2449fb66d81Schristos 	  .separator = ",",
2459fb66d81Schristos 	  .text = "Array of command aliases. "
2469fb66d81Schristos 		  "Each entry is an alias and a command separated by '='."
2479fb66d81Schristos 	},
2489fb66d81Schristos 
2499fb66d81Schristos 	{ .name = "copy-command",
2509fb66d81Schristos 	  .type = OPTIONS_TABLE_STRING,
2519fb66d81Schristos 	  .scope = OPTIONS_TABLE_SERVER,
2529fb66d81Schristos 	  .default_str = "",
2539fb66d81Schristos 	  .text = "Shell command run when text is copied. "
2549fb66d81Schristos 		  "If empty, no command is run."
2554e179ddaSchristos 	},
2564e179ddaSchristos 
2576db26757Swiz 	{ .name = "cursor-colour",
2586db26757Swiz 	  .type = OPTIONS_TABLE_COLOUR,
2596db26757Swiz 	  .scope = OPTIONS_TABLE_WINDOW|OPTIONS_TABLE_PANE,
2606db26757Swiz 	  .default_num = -1,
2616db26757Swiz 	  .text = "Colour of the cursor."
2626db26757Swiz 	},
2636db26757Swiz 
2646db26757Swiz 	{ .name = "cursor-style",
2656db26757Swiz 	  .type = OPTIONS_TABLE_CHOICE,
2666db26757Swiz 	  .scope = OPTIONS_TABLE_WINDOW|OPTIONS_TABLE_PANE,
2676db26757Swiz 	  .choices = options_table_cursor_style_list,
2686db26757Swiz 	  .default_num = 0,
2696db26757Swiz 	  .text = "Style of the cursor."
2706db26757Swiz 	},
2716db26757Swiz 
2725494e770Schristos 	{ .name = "default-terminal",
2735494e770Schristos 	  .type = OPTIONS_TABLE_STRING,
274ed4e6cd4Schristos 	  .scope = OPTIONS_TABLE_SERVER,
2756db26757Swiz 	  .default_str = TMUX_TERM,
2769fb66d81Schristos 	  .text = "Default for the 'TERM' environment variable."
2779fb66d81Schristos 	},
2789fb66d81Schristos 
2799fb66d81Schristos 	{ .name = "editor",
2809fb66d81Schristos 	  .type = OPTIONS_TABLE_STRING,
2819fb66d81Schristos 	  .scope = OPTIONS_TABLE_SERVER,
2829fb66d81Schristos 	  .default_str = _PATH_VI,
2839fb66d81Schristos 	  .text = "Editor run to edit files."
2845494e770Schristos 	},
2855494e770Schristos 
286d530c4d0Sjmmv 	{ .name = "escape-time",
287d530c4d0Sjmmv 	  .type = OPTIONS_TABLE_NUMBER,
288ed4e6cd4Schristos 	  .scope = OPTIONS_TABLE_SERVER,
289d530c4d0Sjmmv 	  .minimum = 0,
290d530c4d0Sjmmv 	  .maximum = INT_MAX,
291*f8cf1a91Swiz 	  .default_num = 10,
2926db26757Swiz 	  .unit = "milliseconds",
2939fb66d81Schristos 	  .text = "Time to wait before assuming a key is Escape."
294d530c4d0Sjmmv 	},
295d530c4d0Sjmmv 
2968f3b9483Schristos 	{ .name = "exit-empty",
2978f3b9483Schristos 	  .type = OPTIONS_TABLE_FLAG,
2988f3b9483Schristos 	  .scope = OPTIONS_TABLE_SERVER,
2999fb66d81Schristos 	  .default_num = 1,
3009fb66d81Schristos 	  .text = "Whether the server should exit if there are no sessions."
3018f3b9483Schristos 	},
3028f3b9483Schristos 
303d530c4d0Sjmmv 	{ .name = "exit-unattached",
304d530c4d0Sjmmv 	  .type = OPTIONS_TABLE_FLAG,
305ed4e6cd4Schristos 	  .scope = OPTIONS_TABLE_SERVER,
3069fb66d81Schristos 	  .default_num = 0,
3079fb66d81Schristos 	  .text = "Whether the server should exit if there are no attached "
3089fb66d81Schristos 		  "clients."
3099fb66d81Schristos 	},
3109fb66d81Schristos 
3119fb66d81Schristos 	{ .name = "extended-keys",
312de7701e2Schristos 	  .type = OPTIONS_TABLE_CHOICE,
3139fb66d81Schristos 	  .scope = OPTIONS_TABLE_SERVER,
314de7701e2Schristos 	  .choices = options_table_extended_keys_list,
3159fb66d81Schristos 	  .default_num = 0,
3169fb66d81Schristos 	  .text = "Whether to request extended key sequences from terminals "
3179fb66d81Schristos 		  "that support it."
318d530c4d0Sjmmv 	},
319d530c4d0Sjmmv 
320*f8cf1a91Swiz 	{ .name = "extended-keys-format",
321*f8cf1a91Swiz 	  .type = OPTIONS_TABLE_CHOICE,
322*f8cf1a91Swiz 	  .scope = OPTIONS_TABLE_SERVER,
323*f8cf1a91Swiz 	  .choices = options_table_extended_keys_format_list,
324*f8cf1a91Swiz 	  .default_num = 1,
325*f8cf1a91Swiz 	  .text = "The format of emitted extended key sequences."
326*f8cf1a91Swiz 	},
327*f8cf1a91Swiz 
328928fc495Schristos 	{ .name = "focus-events",
329928fc495Schristos 	  .type = OPTIONS_TABLE_FLAG,
330ed4e6cd4Schristos 	  .scope = OPTIONS_TABLE_SERVER,
3319fb66d81Schristos 	  .default_num = 0,
3329fb66d81Schristos 	  .text = "Whether to send focus events to applications."
333928fc495Schristos 	},
334928fc495Schristos 
3355494e770Schristos 	{ .name = "history-file",
3365494e770Schristos 	  .type = OPTIONS_TABLE_STRING,
337ed4e6cd4Schristos 	  .scope = OPTIONS_TABLE_SERVER,
3389fb66d81Schristos 	  .default_str = "",
3399fb66d81Schristos 	  .text = "Location of the command prompt history file. "
3409fb66d81Schristos 		  "Empty does not write a history file."
3415494e770Schristos 	},
3425494e770Schristos 
343c23f9150Swiz 	{ .name = "menu-style",
344c23f9150Swiz 	  .type = OPTIONS_TABLE_STRING,
345c23f9150Swiz 	  .scope = OPTIONS_TABLE_WINDOW,
346c23f9150Swiz 	  .flags = OPTIONS_TABLE_IS_STYLE,
347c23f9150Swiz 	  .default_str = "default",
348c23f9150Swiz 	  .separator = ",",
349c23f9150Swiz 	  .text = "Default style of menu."
350c23f9150Swiz 	},
351c23f9150Swiz 
352c23f9150Swiz 	{ .name = "menu-selected-style",
353c23f9150Swiz 	  .type = OPTIONS_TABLE_STRING,
354c23f9150Swiz 	  .scope = OPTIONS_TABLE_WINDOW,
355c23f9150Swiz 	  .flags = OPTIONS_TABLE_IS_STYLE,
356c23f9150Swiz 	  .default_str = "bg=yellow,fg=black",
357c23f9150Swiz 	  .separator = ",",
358c23f9150Swiz 	  .text = "Default style of selected menu item."
359c23f9150Swiz 	},
360c23f9150Swiz 
361c23f9150Swiz 	{ .name = "menu-border-style",
362c23f9150Swiz 	  .type = OPTIONS_TABLE_STRING,
363c23f9150Swiz 	  .scope = OPTIONS_TABLE_WINDOW,
364c23f9150Swiz 	  .default_str = "default",
365c23f9150Swiz 	  .flags = OPTIONS_TABLE_IS_STYLE,
366c23f9150Swiz 	  .separator = ",",
367c23f9150Swiz 	  .text = "Default style of menu borders."
368c23f9150Swiz 	},
369c23f9150Swiz 
370c23f9150Swiz 	{ .name = "menu-border-lines",
371c23f9150Swiz 	  .type = OPTIONS_TABLE_CHOICE,
372c23f9150Swiz 	  .scope = OPTIONS_TABLE_WINDOW,
373c23f9150Swiz 	  .choices = options_table_popup_border_lines_list,
374c23f9150Swiz 	  .default_num = BOX_LINES_SINGLE,
375c23f9150Swiz 	  .text = "Type of characters used to draw menu border lines. Some of "
376c23f9150Swiz 	          "these are only supported on terminals with UTF-8 support."
377c23f9150Swiz 	},
378c23f9150Swiz 
3795494e770Schristos 	{ .name = "message-limit",
3805494e770Schristos 	  .type = OPTIONS_TABLE_NUMBER,
381ed4e6cd4Schristos 	  .scope = OPTIONS_TABLE_SERVER,
3825494e770Schristos 	  .minimum = 0,
3835494e770Schristos 	  .maximum = INT_MAX,
3849fb66d81Schristos 	  .default_num = 1000,
3859fb66d81Schristos 	  .text = "Maximum number of server messages to keep."
3865494e770Schristos 	},
3875494e770Schristos 
388*f8cf1a91Swiz 	{ .name = "prefix-timeout",
389*f8cf1a91Swiz 	  .type = OPTIONS_TABLE_NUMBER,
390*f8cf1a91Swiz 	  .scope = OPTIONS_TABLE_SERVER,
391*f8cf1a91Swiz 	  .minimum = 0,
392*f8cf1a91Swiz 	  .maximum = INT_MAX,
393*f8cf1a91Swiz 	  .default_num = 0,
394*f8cf1a91Swiz 	  .unit = "milliseconds",
395*f8cf1a91Swiz 	  .text = "The timeout for the prefix key if no subsequent key is "
396*f8cf1a91Swiz 	          "pressed. Zero means disabled."
397*f8cf1a91Swiz 	},
398*f8cf1a91Swiz 
3996db26757Swiz 	{ .name = "prompt-history-limit",
4006db26757Swiz 	  .type = OPTIONS_TABLE_NUMBER,
4016db26757Swiz 	  .scope = OPTIONS_TABLE_SERVER,
4026db26757Swiz 	  .minimum = 0,
4036db26757Swiz 	  .maximum = INT_MAX,
4046db26757Swiz 	  .default_num = 100,
4056db26757Swiz 	  .text = "Maximum number of commands to keep in history."
4066db26757Swiz 	},
4076db26757Swiz 
408d530c4d0Sjmmv 	{ .name = "set-clipboard",
409c9ad075bSchristos 	  .type = OPTIONS_TABLE_CHOICE,
410ed4e6cd4Schristos 	  .scope = OPTIONS_TABLE_SERVER,
411c9ad075bSchristos 	  .choices = options_table_set_clipboard_list,
4129fb66d81Schristos 	  .default_num = 1,
4139fb66d81Schristos 	  .text = "Whether to attempt to set the system clipboard ('on' or "
4149fb66d81Schristos 		  "'external') and whether to allow applications to create "
4159fb66d81Schristos 		  "paste buffers with an escape sequence ('on' only)."
416d530c4d0Sjmmv 	},
417d530c4d0Sjmmv 
4185494e770Schristos 	{ .name = "terminal-overrides",
4196483eba0Schristos 	  .type = OPTIONS_TABLE_STRING,
420ed4e6cd4Schristos 	  .scope = OPTIONS_TABLE_SERVER,
4216483eba0Schristos 	  .flags = OPTIONS_TABLE_IS_ARRAY,
422*f8cf1a91Swiz 	  .default_str = "linux*:AX@",
4239fb66d81Schristos 	  .separator = ",",
4249fb66d81Schristos 	  .text = "List of terminal capabilities overrides."
4259fb66d81Schristos 	},
4269fb66d81Schristos 
4279fb66d81Schristos 	{ .name = "terminal-features",
4289fb66d81Schristos 	  .type = OPTIONS_TABLE_STRING,
4299fb66d81Schristos 	  .scope = OPTIONS_TABLE_SERVER,
4309fb66d81Schristos 	  .flags = OPTIONS_TABLE_IS_ARRAY,
4319fb66d81Schristos 	  .default_str = "xterm*:clipboard:ccolour:cstyle:focus:title,"
432c23f9150Swiz 			 "screen*:title,"
433c23f9150Swiz 	                 "rxvt*:ignorefkeys",
4349fb66d81Schristos 	  .separator = ",",
4359fb66d81Schristos 	  .text = "List of terminal features, used if they cannot be "
4369fb66d81Schristos 		  "automatically detected."
4375494e770Schristos 	},
4385494e770Schristos 
439c9ad075bSchristos 	{ .name = "user-keys",
4406483eba0Schristos 	  .type = OPTIONS_TABLE_STRING,
441c9ad075bSchristos 	  .scope = OPTIONS_TABLE_SERVER,
4426483eba0Schristos 	  .flags = OPTIONS_TABLE_IS_ARRAY,
443c9ad075bSchristos 	  .default_str = "",
4449fb66d81Schristos 	  .separator = ",",
4459fb66d81Schristos 	  .text = "User key assignments. "
4469fb66d81Schristos 		  "Each sequence in the list is translated into a key: "
4479fb66d81Schristos 		  "'User0', 'User1' and so on."
448c9ad075bSchristos 	},
449c9ad075bSchristos 
4506483eba0Schristos 	/* Session options. */
451c9ad075bSchristos 	{ .name = "activity-action",
452c9ad075bSchristos 	  .type = OPTIONS_TABLE_CHOICE,
453c9ad075bSchristos 	  .scope = OPTIONS_TABLE_SESSION,
454c9ad075bSchristos 	  .choices = options_table_bell_action_list,
4559fb66d81Schristos 	  .default_num = ALERT_OTHER,
4569fb66d81Schristos 	  .text = "Action to take on an activity alert."
457c9ad075bSchristos 	},
458c9ad075bSchristos 
459928fc495Schristos 	{ .name = "assume-paste-time",
460928fc495Schristos 	  .type = OPTIONS_TABLE_NUMBER,
461ed4e6cd4Schristos 	  .scope = OPTIONS_TABLE_SESSION,
462928fc495Schristos 	  .minimum = 0,
463928fc495Schristos 	  .maximum = INT_MAX,
464928fc495Schristos 	  .default_num = 1,
4659fb66d81Schristos 	  .unit = "milliseconds",
4666db26757Swiz 	  .text = "Maximum time between input to assume it is pasting rather "
4679fb66d81Schristos 		  "than typing."
468928fc495Schristos 	},
469928fc495Schristos 
470d530c4d0Sjmmv 	{ .name = "base-index",
471d530c4d0Sjmmv 	  .type = OPTIONS_TABLE_NUMBER,
472ed4e6cd4Schristos 	  .scope = OPTIONS_TABLE_SESSION,
473d530c4d0Sjmmv 	  .minimum = 0,
474d530c4d0Sjmmv 	  .maximum = INT_MAX,
4759fb66d81Schristos 	  .default_num = 0,
4769fb66d81Schristos 	  .text = "Default index of the first window in each session."
477d530c4d0Sjmmv 	},
478d530c4d0Sjmmv 
479d530c4d0Sjmmv 	{ .name = "bell-action",
480d530c4d0Sjmmv 	  .type = OPTIONS_TABLE_CHOICE,
481ed4e6cd4Schristos 	  .scope = OPTIONS_TABLE_SESSION,
482d530c4d0Sjmmv 	  .choices = options_table_bell_action_list,
4839fb66d81Schristos 	  .default_num = ALERT_ANY,
4849fb66d81Schristos 	  .text = "Action to take on a bell alert."
485d530c4d0Sjmmv 	},
486d530c4d0Sjmmv 
487d530c4d0Sjmmv 	{ .name = "default-command",
488d530c4d0Sjmmv 	  .type = OPTIONS_TABLE_STRING,
489ed4e6cd4Schristos 	  .scope = OPTIONS_TABLE_SESSION,
4909fb66d81Schristos 	  .default_str = "",
4919fb66d81Schristos 	  .text = "Default command to run in new panes. If empty, a shell is "
4929fb66d81Schristos 		  "started."
493d530c4d0Sjmmv 	},
494d530c4d0Sjmmv 
495d530c4d0Sjmmv 	{ .name = "default-shell",
496d530c4d0Sjmmv 	  .type = OPTIONS_TABLE_STRING,
497ed4e6cd4Schristos 	  .scope = OPTIONS_TABLE_SESSION,
4989fb66d81Schristos 	  .default_str = _PATH_BSHELL,
4999fb66d81Schristos 	  .text = "Location of default shell."
500d530c4d0Sjmmv 	},
501d530c4d0Sjmmv 
502ef36e747Schristos 	{ .name = "default-size",
503ef36e747Schristos 	  .type = OPTIONS_TABLE_STRING,
504ef36e747Schristos 	  .scope = OPTIONS_TABLE_SESSION,
505ef36e747Schristos 	  .pattern = "[0-9]*x[0-9]*",
5069fb66d81Schristos 	  .default_str = "80x24",
5079fb66d81Schristos 	  .text = "Initial size of new sessions."
508ef36e747Schristos 	},
509ef36e747Schristos 
510d530c4d0Sjmmv 	{ .name = "destroy-unattached",
511c23f9150Swiz 	  .type = OPTIONS_TABLE_CHOICE,
512ed4e6cd4Schristos 	  .scope = OPTIONS_TABLE_SESSION,
513c23f9150Swiz 	  .choices = options_table_destroy_unattached_list,
5149fb66d81Schristos 	  .default_num = 0,
5159fb66d81Schristos 	  .text = "Whether to destroy sessions when they have no attached "
516c23f9150Swiz 		  "clients, or keep the last session whether in the group."
517d530c4d0Sjmmv 	},
518d530c4d0Sjmmv 
519d530c4d0Sjmmv 	{ .name = "detach-on-destroy",
5209fb66d81Schristos 	  .type = OPTIONS_TABLE_CHOICE,
521ed4e6cd4Schristos 	  .scope = OPTIONS_TABLE_SESSION,
5229fb66d81Schristos 	  .choices = options_table_detach_on_destroy_list,
5239fb66d81Schristos 	  .default_num = 1,
5249fb66d81Schristos 	  .text = "Whether to detach when a session is destroyed, or switch "
5259fb66d81Schristos 		  "the client to another session if any exist."
526d530c4d0Sjmmv 	},
527d530c4d0Sjmmv 
528d530c4d0Sjmmv 	{ .name = "display-panes-active-colour",
529d530c4d0Sjmmv 	  .type = OPTIONS_TABLE_COLOUR,
530ed4e6cd4Schristos 	  .scope = OPTIONS_TABLE_SESSION,
5319fb66d81Schristos 	  .default_num = 1,
5329fb66d81Schristos 	  .text = "Colour of the active pane for 'display-panes'."
533d530c4d0Sjmmv 	},
534d530c4d0Sjmmv 
535d530c4d0Sjmmv 	{ .name = "display-panes-colour",
536d530c4d0Sjmmv 	  .type = OPTIONS_TABLE_COLOUR,
537ed4e6cd4Schristos 	  .scope = OPTIONS_TABLE_SESSION,
5389fb66d81Schristos 	  .default_num = 4,
5399fb66d81Schristos 	  .text = "Colour of not active panes for 'display-panes'."
540d530c4d0Sjmmv 	},
541d530c4d0Sjmmv 
542d530c4d0Sjmmv 	{ .name = "display-panes-time",
543d530c4d0Sjmmv 	  .type = OPTIONS_TABLE_NUMBER,
544ed4e6cd4Schristos 	  .scope = OPTIONS_TABLE_SESSION,
545d530c4d0Sjmmv 	  .minimum = 1,
546d530c4d0Sjmmv 	  .maximum = INT_MAX,
5479fb66d81Schristos 	  .default_num = 1000,
5489fb66d81Schristos 	  .unit = "milliseconds",
5499fb66d81Schristos 	  .text = "Time for which 'display-panes' should show pane numbers."
550d530c4d0Sjmmv 	},
551d530c4d0Sjmmv 
552d530c4d0Sjmmv 	{ .name = "display-time",
553d530c4d0Sjmmv 	  .type = OPTIONS_TABLE_NUMBER,
554ed4e6cd4Schristos 	  .scope = OPTIONS_TABLE_SESSION,
555ed4e6cd4Schristos 	  .minimum = 0,
556d530c4d0Sjmmv 	  .maximum = INT_MAX,
5579fb66d81Schristos 	  .default_num = 750,
5589fb66d81Schristos 	  .unit = "milliseconds",
5599fb66d81Schristos 	  .text = "Time for which status line messages should appear."
560d530c4d0Sjmmv 	},
561d530c4d0Sjmmv 
562d530c4d0Sjmmv 	{ .name = "history-limit",
563d530c4d0Sjmmv 	  .type = OPTIONS_TABLE_NUMBER,
564ed4e6cd4Schristos 	  .scope = OPTIONS_TABLE_SESSION,
565d530c4d0Sjmmv 	  .minimum = 0,
566d530c4d0Sjmmv 	  .maximum = INT_MAX,
5679fb66d81Schristos 	  .default_num = 2000,
5689fb66d81Schristos 	  .unit = "lines",
5699fb66d81Schristos 	  .text = "Maximum number of lines to keep in the history for each "
5709fb66d81Schristos 		  "pane. "
5719fb66d81Schristos 		  "If changed, the new value applies only to new panes."
572d530c4d0Sjmmv 	},
573d530c4d0Sjmmv 
574ed4e6cd4Schristos 	{ .name = "key-table",
575ed4e6cd4Schristos 	  .type = OPTIONS_TABLE_STRING,
576ed4e6cd4Schristos 	  .scope = OPTIONS_TABLE_SESSION,
5779fb66d81Schristos 	  .default_str = "root",
5789fb66d81Schristos 	  .text = "Default key table. "
5799fb66d81Schristos 		  "Key presses are first looked up in this table."
580ed4e6cd4Schristos 	},
581ed4e6cd4Schristos 
582d530c4d0Sjmmv 	{ .name = "lock-after-time",
583d530c4d0Sjmmv 	  .type = OPTIONS_TABLE_NUMBER,
584ed4e6cd4Schristos 	  .scope = OPTIONS_TABLE_SESSION,
585d530c4d0Sjmmv 	  .minimum = 0,
586d530c4d0Sjmmv 	  .maximum = INT_MAX,
5879fb66d81Schristos 	  .default_num = 0,
5889fb66d81Schristos 	  .unit = "seconds",
5899fb66d81Schristos 	  .text = "Time after which a client is locked if not used."
590d530c4d0Sjmmv 	},
591d530c4d0Sjmmv 
592d530c4d0Sjmmv 	{ .name = "lock-command",
593d530c4d0Sjmmv 	  .type = OPTIONS_TABLE_STRING,
594ed4e6cd4Schristos 	  .scope = OPTIONS_TABLE_SESSION,
595c23f9150Swiz 	  .default_str = TMUX_LOCK_CMD,
5969fb66d81Schristos 	  .text = "Shell command to run to lock a client."
597d530c4d0Sjmmv 	},
598d530c4d0Sjmmv 
599928fc495Schristos 	{ .name = "message-command-style",
6009fb66d81Schristos 	  .type = OPTIONS_TABLE_STRING,
601ed4e6cd4Schristos 	  .scope = OPTIONS_TABLE_SESSION,
6029fb66d81Schristos 	  .default_str = "bg=black,fg=yellow",
6039fb66d81Schristos 	  .flags = OPTIONS_TABLE_IS_STYLE,
6049fb66d81Schristos 	  .separator = ",",
6059fb66d81Schristos 	  .text = "Style of the command prompt when in command mode, if "
6069fb66d81Schristos 		  "'mode-keys' is set to 'vi'."
607d530c4d0Sjmmv 	},
608d530c4d0Sjmmv 
609c23f9150Swiz 	{ .name = "message-line",
610c23f9150Swiz 	  .type = OPTIONS_TABLE_CHOICE,
611c23f9150Swiz 	  .scope = OPTIONS_TABLE_SESSION,
612c23f9150Swiz 	  .choices = options_table_message_line_list,
613c23f9150Swiz 	  .default_num = 0,
614c23f9150Swiz 	  .text = "Position (line) of messages and the command prompt."
615c23f9150Swiz 	},
616c23f9150Swiz 
617928fc495Schristos 	{ .name = "message-style",
6189fb66d81Schristos 	  .type = OPTIONS_TABLE_STRING,
619ed4e6cd4Schristos 	  .scope = OPTIONS_TABLE_SESSION,
6209fb66d81Schristos 	  .default_str = "bg=yellow,fg=black",
6219fb66d81Schristos 	  .flags = OPTIONS_TABLE_IS_STYLE,
6229fb66d81Schristos 	  .separator = ",",
623c23f9150Swiz 	  .text = "Style of messages and the command prompt."
624928fc495Schristos 	},
625928fc495Schristos 
6265494e770Schristos 	{ .name = "mouse",
627d530c4d0Sjmmv 	  .type = OPTIONS_TABLE_FLAG,
628ed4e6cd4Schristos 	  .scope = OPTIONS_TABLE_SESSION,
6299fb66d81Schristos 	  .default_num = 0,
6309fb66d81Schristos 	  .text = "Whether the mouse is recognised and mouse key bindings are "
6319fb66d81Schristos 		  "executed. "
6329fb66d81Schristos 		  "Applications inside panes can use the mouse even when 'off'."
633d530c4d0Sjmmv 	},
634d530c4d0Sjmmv 
635d530c4d0Sjmmv 	{ .name = "prefix",
636928fc495Schristos 	  .type = OPTIONS_TABLE_KEY,
637ed4e6cd4Schristos 	  .scope = OPTIONS_TABLE_SESSION,
638*f8cf1a91Swiz 	  .default_num = 'b'|KEYC_CTRL,
6399fb66d81Schristos 	  .text = "The prefix key."
640928fc495Schristos 	},
641928fc495Schristos 
642928fc495Schristos 	{ .name = "prefix2",
643928fc495Schristos 	  .type = OPTIONS_TABLE_KEY,
644ed4e6cd4Schristos 	  .scope = OPTIONS_TABLE_SESSION,
645928fc495Schristos 	  .default_num = KEYC_NONE,
6469fb66d81Schristos 	  .text = "A second prefix key."
647928fc495Schristos 	},
648928fc495Schristos 
649928fc495Schristos 	{ .name = "renumber-windows",
650928fc495Schristos 	  .type = OPTIONS_TABLE_FLAG,
651ed4e6cd4Schristos 	  .scope = OPTIONS_TABLE_SESSION,
6529fb66d81Schristos 	  .default_num = 0,
6539fb66d81Schristos 	  .text = "Whether windows are automatically renumbered rather than "
6549fb66d81Schristos 		  "leaving gaps."
655d530c4d0Sjmmv 	},
656d530c4d0Sjmmv 
657d530c4d0Sjmmv 	{ .name = "repeat-time",
658d530c4d0Sjmmv 	  .type = OPTIONS_TABLE_NUMBER,
659ed4e6cd4Schristos 	  .scope = OPTIONS_TABLE_SESSION,
660d530c4d0Sjmmv 	  .minimum = 0,
661d530c4d0Sjmmv 	  .maximum = SHRT_MAX,
6629fb66d81Schristos 	  .default_num = 500,
6639fb66d81Schristos 	  .unit = "milliseconds",
6649fb66d81Schristos 	  .text = "Time to wait for a key binding to repeat, if it is bound "
6659fb66d81Schristos 		  "with the '-r' flag."
666d530c4d0Sjmmv 	},
667d530c4d0Sjmmv 
668d530c4d0Sjmmv 	{ .name = "set-titles",
669d530c4d0Sjmmv 	  .type = OPTIONS_TABLE_FLAG,
670ed4e6cd4Schristos 	  .scope = OPTIONS_TABLE_SESSION,
6719fb66d81Schristos 	  .default_num = 0,
6729fb66d81Schristos 	  .text = "Whether to set the terminal title, if supported."
673d530c4d0Sjmmv 	},
674d530c4d0Sjmmv 
675d530c4d0Sjmmv 	{ .name = "set-titles-string",
676d530c4d0Sjmmv 	  .type = OPTIONS_TABLE_STRING,
677ed4e6cd4Schristos 	  .scope = OPTIONS_TABLE_SESSION,
6789fb66d81Schristos 	  .default_str = "#S:#I:#W - \"#T\" #{session_alerts}",
6799fb66d81Schristos 	  .text = "Format of the terminal title to set."
680d530c4d0Sjmmv 	},
681d530c4d0Sjmmv 
682c9ad075bSchristos 	{ .name = "silence-action",
683c9ad075bSchristos 	  .type = OPTIONS_TABLE_CHOICE,
684c9ad075bSchristos 	  .scope = OPTIONS_TABLE_SESSION,
685c9ad075bSchristos 	  .choices = options_table_bell_action_list,
6869fb66d81Schristos 	  .default_num = ALERT_OTHER,
6879fb66d81Schristos 	  .text = "Action to take on a silence alert."
688c9ad075bSchristos 	},
689c9ad075bSchristos 
690d530c4d0Sjmmv 	{ .name = "status",
691ef36e747Schristos 	  .type = OPTIONS_TABLE_CHOICE,
692ed4e6cd4Schristos 	  .scope = OPTIONS_TABLE_SESSION,
693ef36e747Schristos 	  .choices = options_table_status_list,
6949fb66d81Schristos 	  .default_num = 1,
6959fb66d81Schristos 	  .text = "Number of lines in the status line."
696d530c4d0Sjmmv 	},
697d530c4d0Sjmmv 
698d530c4d0Sjmmv 	{ .name = "status-bg",
699d530c4d0Sjmmv 	  .type = OPTIONS_TABLE_COLOUR,
700ed4e6cd4Schristos 	  .scope = OPTIONS_TABLE_SESSION,
7019fb66d81Schristos 	  .default_num = 8,
7029fb66d81Schristos 	  .text = "Background colour of the status line. This option is "
7039fb66d81Schristos 		  "deprecated, use 'status-style' instead."
704d530c4d0Sjmmv 	},
705d530c4d0Sjmmv 
706d530c4d0Sjmmv 	{ .name = "status-fg",
707d530c4d0Sjmmv 	  .type = OPTIONS_TABLE_COLOUR,
708ed4e6cd4Schristos 	  .scope = OPTIONS_TABLE_SESSION,
7099fb66d81Schristos 	  .default_num = 8,
7109fb66d81Schristos 	  .text = "Foreground colour of the status line. This option is "
7119fb66d81Schristos 		  "deprecated, use 'status-style' instead."
712ef36e747Schristos 	},
713ef36e747Schristos 
714ef36e747Schristos 	{ .name = "status-format",
7156483eba0Schristos 	  .type = OPTIONS_TABLE_STRING,
716ef36e747Schristos 	  .scope = OPTIONS_TABLE_SESSION,
7176483eba0Schristos 	  .flags = OPTIONS_TABLE_IS_ARRAY,
718ef36e747Schristos 	  .default_arr = options_table_status_format_default,
7199fb66d81Schristos 	  .text = "Formats for the status lines. "
7209fb66d81Schristos 		  "Each array member is the format for one status line. "
7219fb66d81Schristos 		  "The default status line is made up of several components "
7226db26757Swiz 		  "which may be configured individually with other options such "
7239fb66d81Schristos 		  "as 'status-left'."
724d530c4d0Sjmmv 	},
725d530c4d0Sjmmv 
726d530c4d0Sjmmv 	{ .name = "status-interval",
727d530c4d0Sjmmv 	  .type = OPTIONS_TABLE_NUMBER,
728ed4e6cd4Schristos 	  .scope = OPTIONS_TABLE_SESSION,
729d530c4d0Sjmmv 	  .minimum = 0,
730d530c4d0Sjmmv 	  .maximum = INT_MAX,
7319fb66d81Schristos 	  .default_num = 15,
7329fb66d81Schristos 	  .unit = "seconds",
7339fb66d81Schristos 	  .text = "Number of seconds between status line updates."
734d530c4d0Sjmmv 	},
735d530c4d0Sjmmv 
736d530c4d0Sjmmv 	{ .name = "status-justify",
737d530c4d0Sjmmv 	  .type = OPTIONS_TABLE_CHOICE,
738ed4e6cd4Schristos 	  .scope = OPTIONS_TABLE_SESSION,
739d530c4d0Sjmmv 	  .choices = options_table_status_justify_list,
7409fb66d81Schristos 	  .default_num = 0,
7419fb66d81Schristos 	  .text = "Position of the window list in the status line."
742d530c4d0Sjmmv 	},
743d530c4d0Sjmmv 
744d530c4d0Sjmmv 	{ .name = "status-keys",
745d530c4d0Sjmmv 	  .type = OPTIONS_TABLE_CHOICE,
746ed4e6cd4Schristos 	  .scope = OPTIONS_TABLE_SESSION,
747d530c4d0Sjmmv 	  .choices = options_table_status_keys_list,
7489fb66d81Schristos 	  .default_num = MODEKEY_EMACS,
7499fb66d81Schristos 	  .text = "Key set to use at the command prompt."
750d530c4d0Sjmmv 	},
751d530c4d0Sjmmv 
752d530c4d0Sjmmv 	{ .name = "status-left",
753d530c4d0Sjmmv 	  .type = OPTIONS_TABLE_STRING,
754ed4e6cd4Schristos 	  .scope = OPTIONS_TABLE_SESSION,
7559fb66d81Schristos 	  .default_str = "[#{session_name}] ",
7569fb66d81Schristos 	  .text = "Contents of the left side of the status line."
757d530c4d0Sjmmv 	},
758d530c4d0Sjmmv 
759d530c4d0Sjmmv 	{ .name = "status-left-length",
760d530c4d0Sjmmv 	  .type = OPTIONS_TABLE_NUMBER,
761ed4e6cd4Schristos 	  .scope = OPTIONS_TABLE_SESSION,
762d530c4d0Sjmmv 	  .minimum = 0,
763d530c4d0Sjmmv 	  .maximum = SHRT_MAX,
7649fb66d81Schristos 	  .default_num = 10,
7659fb66d81Schristos 	  .text = "Maximum width of the left side of the status line."
766d530c4d0Sjmmv 	},
767d530c4d0Sjmmv 
768928fc495Schristos 	{ .name = "status-left-style",
7699fb66d81Schristos 	  .type = OPTIONS_TABLE_STRING,
770ed4e6cd4Schristos 	  .scope = OPTIONS_TABLE_SESSION,
7719fb66d81Schristos 	  .default_str = "default",
7729fb66d81Schristos 	  .flags = OPTIONS_TABLE_IS_STYLE,
7739fb66d81Schristos 	  .separator = ",",
7749fb66d81Schristos 	  .text = "Style of the left side of the status line."
775928fc495Schristos 	},
776928fc495Schristos 
777928fc495Schristos 	{ .name = "status-position",
778928fc495Schristos 	  .type = OPTIONS_TABLE_CHOICE,
779ed4e6cd4Schristos 	  .scope = OPTIONS_TABLE_SESSION,
780928fc495Schristos 	  .choices = options_table_status_position_list,
7819fb66d81Schristos 	  .default_num = 1,
7829fb66d81Schristos 	  .text = "Position of the status line."
783928fc495Schristos 	},
784928fc495Schristos 
785d530c4d0Sjmmv 	{ .name = "status-right",
786d530c4d0Sjmmv 	  .type = OPTIONS_TABLE_STRING,
787ed4e6cd4Schristos 	  .scope = OPTIONS_TABLE_SESSION,
788ef36e747Schristos 	  .default_str = "#{?window_bigger,"
789ef36e747Schristos 			 "[#{window_offset_x}#,#{window_offset_y}] ,}"
7909fb66d81Schristos 			 "\"#{=21:pane_title}\" %H:%M %d-%b-%y",
7919fb66d81Schristos 	  .text = "Contents of the right side of the status line."
7929fb66d81Schristos 
793d530c4d0Sjmmv 	},
794d530c4d0Sjmmv 
795d530c4d0Sjmmv 	{ .name = "status-right-length",
796d530c4d0Sjmmv 	  .type = OPTIONS_TABLE_NUMBER,
797ed4e6cd4Schristos 	  .scope = OPTIONS_TABLE_SESSION,
798d530c4d0Sjmmv 	  .minimum = 0,
799d530c4d0Sjmmv 	  .maximum = SHRT_MAX,
8009fb66d81Schristos 	  .default_num = 40,
8019fb66d81Schristos 	  .text = "Maximum width of the right side of the status line."
802d530c4d0Sjmmv 	},
803d530c4d0Sjmmv 
804928fc495Schristos 	{ .name = "status-right-style",
8059fb66d81Schristos 	  .type = OPTIONS_TABLE_STRING,
806ed4e6cd4Schristos 	  .scope = OPTIONS_TABLE_SESSION,
8079fb66d81Schristos 	  .default_str = "default",
8089fb66d81Schristos 	  .flags = OPTIONS_TABLE_IS_STYLE,
8099fb66d81Schristos 	  .separator = ",",
8109fb66d81Schristos 	  .text = "Style of the right side of the status line."
811928fc495Schristos 	},
812928fc495Schristos 
813928fc495Schristos 	{ .name = "status-style",
8149fb66d81Schristos 	  .type = OPTIONS_TABLE_STRING,
815ed4e6cd4Schristos 	  .scope = OPTIONS_TABLE_SESSION,
8169fb66d81Schristos 	  .default_str = "bg=green,fg=black",
8179fb66d81Schristos 	  .flags = OPTIONS_TABLE_IS_STYLE,
8189fb66d81Schristos 	  .separator = ",",
8199fb66d81Schristos 	  .text = "Style of the status line."
820928fc495Schristos 	},
821928fc495Schristos 
822d530c4d0Sjmmv 	{ .name = "update-environment",
8236483eba0Schristos 	  .type = OPTIONS_TABLE_STRING,
824ed4e6cd4Schristos 	  .scope = OPTIONS_TABLE_SESSION,
8256483eba0Schristos 	  .flags = OPTIONS_TABLE_IS_ARRAY,
8268f3b9483Schristos 	  .default_str = "DISPLAY KRB5CCNAME SSH_ASKPASS SSH_AUTH_SOCK "
8279fb66d81Schristos 			 "SSH_AGENT_PID SSH_CONNECTION WINDOWID XAUTHORITY",
8289fb66d81Schristos 	  .text = "List of environment variables to update in the session "
8299fb66d81Schristos 		  "environment when a client is attached."
830d530c4d0Sjmmv 	},
831d530c4d0Sjmmv 
832d530c4d0Sjmmv 	{ .name = "visual-activity",
833c9ad075bSchristos 	  .type = OPTIONS_TABLE_CHOICE,
834ed4e6cd4Schristos 	  .scope = OPTIONS_TABLE_SESSION,
835c9ad075bSchristos 	  .choices = options_table_visual_bell_list,
8369fb66d81Schristos 	  .default_num = VISUAL_OFF,
8379fb66d81Schristos 	  .text = "How activity alerts should be shown: a message ('on'), "
8389fb66d81Schristos 		  "a message and a bell ('both') or nothing ('off')."
839d530c4d0Sjmmv 	},
840d530c4d0Sjmmv 
841d530c4d0Sjmmv 	{ .name = "visual-bell",
842c9ad075bSchristos 	  .type = OPTIONS_TABLE_CHOICE,
843ed4e6cd4Schristos 	  .scope = OPTIONS_TABLE_SESSION,
844c9ad075bSchristos 	  .choices = options_table_visual_bell_list,
8459fb66d81Schristos 	  .default_num = VISUAL_OFF,
8469fb66d81Schristos 	  .text = "How bell alerts should be shown: a message ('on'), "
8479fb66d81Schristos 		  "a message and a bell ('both') or nothing ('off')."
848d530c4d0Sjmmv 	},
849d530c4d0Sjmmv 
850d530c4d0Sjmmv 	{ .name = "visual-silence",
851c9ad075bSchristos 	  .type = OPTIONS_TABLE_CHOICE,
852ed4e6cd4Schristos 	  .scope = OPTIONS_TABLE_SESSION,
853c9ad075bSchristos 	  .choices = options_table_visual_bell_list,
8549fb66d81Schristos 	  .default_num = VISUAL_OFF,
8559fb66d81Schristos 	  .text = "How silence alerts should be shown: a message ('on'), "
8569fb66d81Schristos 		  "a message and a bell ('both') or nothing ('off')."
857d530c4d0Sjmmv 	},
858d530c4d0Sjmmv 
859928fc495Schristos 	{ .name = "word-separators",
860928fc495Schristos 	  .type = OPTIONS_TABLE_STRING,
861ed4e6cd4Schristos 	  .scope = OPTIONS_TABLE_SESSION,
8626db26757Swiz 	  /*
8636db26757Swiz 	   * The set of non-alphanumeric printable ASCII characters minus the
8646db26757Swiz 	   * underscore.
8656db26757Swiz 	   */
8666db26757Swiz 	  .default_str = "!\"#$%&'()*+,-./:;<=>?@[\\]^`{|}~",
8679fb66d81Schristos 	  .text = "Characters considered to separate words."
868928fc495Schristos 	},
869928fc495Schristos 
8706483eba0Schristos 	/* Window options. */
871d530c4d0Sjmmv 	{ .name = "aggressive-resize",
872d530c4d0Sjmmv 	  .type = OPTIONS_TABLE_FLAG,
873ed4e6cd4Schristos 	  .scope = OPTIONS_TABLE_WINDOW,
8749fb66d81Schristos 	  .default_num = 0,
8759fb66d81Schristos 	  .text = "When 'window-size' is 'smallest', whether the maximum size "
8769fb66d81Schristos 		  "of a window is the smallest attached session where it is "
8779fb66d81Schristos 		  "the current window ('on') or the smallest session it is "
8789fb66d81Schristos 		  "linked to ('off')."
879d530c4d0Sjmmv 	},
880d530c4d0Sjmmv 
8816db26757Swiz 	{ .name = "allow-passthrough",
882c23f9150Swiz 	  .type = OPTIONS_TABLE_CHOICE,
8836db26757Swiz 	  .scope = OPTIONS_TABLE_WINDOW|OPTIONS_TABLE_PANE,
884c23f9150Swiz 	  .choices = options_table_allow_passthrough_list,
8856db26757Swiz 	  .default_num = 0,
8866db26757Swiz 	  .text = "Whether applications are allowed to use the escape sequence "
887c23f9150Swiz 		  "to bypass tmux. Can be 'off' (disallowed), 'on' (allowed "
888c23f9150Swiz 		  "if the pane is visible), or 'all' (allowed even if the pane "
889c23f9150Swiz 		  "is invisible)."
8906db26757Swiz 	},
8916db26757Swiz 
892928fc495Schristos 	{ .name = "allow-rename",
893928fc495Schristos 	  .type = OPTIONS_TABLE_FLAG,
8946483eba0Schristos 	  .scope = OPTIONS_TABLE_WINDOW|OPTIONS_TABLE_PANE,
8959fb66d81Schristos 	  .default_num = 0,
8969fb66d81Schristos 	  .text = "Whether applications are allowed to use the escape sequence "
8979fb66d81Schristos 		  "to rename windows."
898928fc495Schristos 	},
899928fc495Schristos 
900*f8cf1a91Swiz 	{ .name = "allow-set-title",
901*f8cf1a91Swiz 	  .type = OPTIONS_TABLE_FLAG,
902*f8cf1a91Swiz 	  .scope = OPTIONS_TABLE_WINDOW|OPTIONS_TABLE_PANE,
903*f8cf1a91Swiz 	  .default_num = 1,
904*f8cf1a91Swiz 	  .text = "Whether applications are allowed to use the escape sequence "
905*f8cf1a91Swiz 		  "to set the pane title."
906*f8cf1a91Swiz 	},
907*f8cf1a91Swiz 
908d530c4d0Sjmmv 	{ .name = "alternate-screen",
909d530c4d0Sjmmv 	  .type = OPTIONS_TABLE_FLAG,
9106483eba0Schristos 	  .scope = OPTIONS_TABLE_WINDOW|OPTIONS_TABLE_PANE,
9119fb66d81Schristos 	  .default_num = 1,
9129fb66d81Schristos 	  .text = "Whether applications are allowed to use the alternate "
9139fb66d81Schristos 		  "screen."
914d530c4d0Sjmmv 	},
915d530c4d0Sjmmv 
916d530c4d0Sjmmv 	{ .name = "automatic-rename",
917d530c4d0Sjmmv 	  .type = OPTIONS_TABLE_FLAG,
918ed4e6cd4Schristos 	  .scope = OPTIONS_TABLE_WINDOW,
9199fb66d81Schristos 	  .default_num = 1,
9209fb66d81Schristos 	  .text = "Whether windows are automatically renamed."
921d530c4d0Sjmmv 	},
922d530c4d0Sjmmv 
923928fc495Schristos 	{ .name = "automatic-rename-format",
924928fc495Schristos 	  .type = OPTIONS_TABLE_STRING,
925ed4e6cd4Schristos 	  .scope = OPTIONS_TABLE_WINDOW,
9265494e770Schristos 	  .default_str = "#{?pane_in_mode,[tmux],#{pane_current_command}}"
9279fb66d81Schristos 			 "#{?pane_dead,[dead],}",
9289fb66d81Schristos 	  .text = "Format used to automatically rename windows."
929928fc495Schristos 	},
930928fc495Schristos 
931d530c4d0Sjmmv 	{ .name = "clock-mode-colour",
932d530c4d0Sjmmv 	  .type = OPTIONS_TABLE_COLOUR,
933ed4e6cd4Schristos 	  .scope = OPTIONS_TABLE_WINDOW,
9349fb66d81Schristos 	  .default_num = 4,
9359fb66d81Schristos 	  .text = "Colour of the clock in clock mode."
936d530c4d0Sjmmv 	},
937d530c4d0Sjmmv 
938d530c4d0Sjmmv 	{ .name = "clock-mode-style",
939d530c4d0Sjmmv 	  .type = OPTIONS_TABLE_CHOICE,
940ed4e6cd4Schristos 	  .scope = OPTIONS_TABLE_WINDOW,
941d530c4d0Sjmmv 	  .choices = options_table_clock_mode_style_list,
9429fb66d81Schristos 	  .default_num = 1,
9439fb66d81Schristos 	  .text = "Time format of the clock in clock mode."
9449fb66d81Schristos 	},
9459fb66d81Schristos 
9469fb66d81Schristos 	{ .name = "copy-mode-match-style",
9479fb66d81Schristos 	  .type = OPTIONS_TABLE_STRING,
9489fb66d81Schristos 	  .scope = OPTIONS_TABLE_WINDOW,
9499fb66d81Schristos 	  .default_str = "bg=cyan,fg=black",
9509fb66d81Schristos 	  .flags = OPTIONS_TABLE_IS_STYLE,
9519fb66d81Schristos 	  .separator = ",",
9529fb66d81Schristos 	  .text = "Style of search matches in copy mode."
9539fb66d81Schristos 	},
9549fb66d81Schristos 
9559fb66d81Schristos 	{ .name = "copy-mode-current-match-style",
9569fb66d81Schristos 	  .type = OPTIONS_TABLE_STRING,
9579fb66d81Schristos 	  .scope = OPTIONS_TABLE_WINDOW,
9589fb66d81Schristos 	  .default_str = "bg=magenta,fg=black",
9599fb66d81Schristos 	  .flags = OPTIONS_TABLE_IS_STYLE,
9609fb66d81Schristos 	  .separator = ",",
9619fb66d81Schristos 	  .text = "Style of the current search match in copy mode."
9629fb66d81Schristos 	},
9639fb66d81Schristos 
9649fb66d81Schristos 	{ .name = "copy-mode-mark-style",
9659fb66d81Schristos 	  .type = OPTIONS_TABLE_STRING,
9669fb66d81Schristos 	  .scope = OPTIONS_TABLE_WINDOW,
9679fb66d81Schristos 	  .default_str = "bg=red,fg=black",
9689fb66d81Schristos 	  .flags = OPTIONS_TABLE_IS_STYLE,
9699fb66d81Schristos 	  .separator = ",",
9709fb66d81Schristos 	  .text = "Style of the marked line in copy mode."
971d530c4d0Sjmmv 	},
972d530c4d0Sjmmv 
9736db26757Swiz 	{ .name = "fill-character",
9746db26757Swiz 	  .type = OPTIONS_TABLE_STRING,
9756db26757Swiz 	  .scope = OPTIONS_TABLE_WINDOW,
9766db26757Swiz 	  .default_str = "",
9776db26757Swiz 	  .text = "Character used to fill unused parts of window."
9786db26757Swiz 	},
9796db26757Swiz 
980d530c4d0Sjmmv 	{ .name = "main-pane-height",
9819fb66d81Schristos 	  .type = OPTIONS_TABLE_STRING,
982ed4e6cd4Schristos 	  .scope = OPTIONS_TABLE_WINDOW,
9839fb66d81Schristos 	  .default_str = "24",
9849fb66d81Schristos 	  .text = "Height of the main pane in the 'main-horizontal' layout. "
9859fb66d81Schristos 		  "This may be a percentage, for example '10%'."
986d530c4d0Sjmmv 	},
987d530c4d0Sjmmv 
988d530c4d0Sjmmv 	{ .name = "main-pane-width",
9899fb66d81Schristos 	  .type = OPTIONS_TABLE_STRING,
990ed4e6cd4Schristos 	  .scope = OPTIONS_TABLE_WINDOW,
9919fb66d81Schristos 	  .default_str = "80",
9929fb66d81Schristos 	  .text = "Width of the main pane in the 'main-vertical' layout. "
9939fb66d81Schristos 		  "This may be a percentage, for example '10%'."
994d530c4d0Sjmmv 	},
995d530c4d0Sjmmv 
996d530c4d0Sjmmv 	{ .name = "mode-keys",
997d530c4d0Sjmmv 	  .type = OPTIONS_TABLE_CHOICE,
998ed4e6cd4Schristos 	  .scope = OPTIONS_TABLE_WINDOW,
999d530c4d0Sjmmv 	  .choices = options_table_mode_keys_list,
10009fb66d81Schristos 	  .default_num = MODEKEY_EMACS,
10019fb66d81Schristos 	  .text = "Key set used in copy mode."
1002d530c4d0Sjmmv 	},
1003d530c4d0Sjmmv 
1004928fc495Schristos 	{ .name = "mode-style",
10059fb66d81Schristos 	  .type = OPTIONS_TABLE_STRING,
1006ed4e6cd4Schristos 	  .scope = OPTIONS_TABLE_WINDOW,
10079fb66d81Schristos 	  .flags = OPTIONS_TABLE_IS_STYLE,
1008c23f9150Swiz 	  .default_str = "bg=yellow,fg=black",
10099fb66d81Schristos 	  .separator = ",",
10109fb66d81Schristos 	  .text = "Style of indicators and highlighting in modes."
1011928fc495Schristos 	},
1012928fc495Schristos 
1013d530c4d0Sjmmv 	{ .name = "monitor-activity",
1014d530c4d0Sjmmv 	  .type = OPTIONS_TABLE_FLAG,
1015ed4e6cd4Schristos 	  .scope = OPTIONS_TABLE_WINDOW,
10169fb66d81Schristos 	  .default_num = 0,
10179fb66d81Schristos 	  .text = "Whether an alert is triggered by activity."
1018d530c4d0Sjmmv 	},
1019d530c4d0Sjmmv 
1020c9ad075bSchristos 	{ .name = "monitor-bell",
1021c9ad075bSchristos 	  .type = OPTIONS_TABLE_FLAG,
1022c9ad075bSchristos 	  .scope = OPTIONS_TABLE_WINDOW,
10239fb66d81Schristos 	  .default_num = 1,
10249fb66d81Schristos 	  .text = "Whether an alert is triggered by a bell."
1025c9ad075bSchristos 	},
1026c9ad075bSchristos 
1027d530c4d0Sjmmv 	{ .name = "monitor-silence",
1028d530c4d0Sjmmv 	  .type = OPTIONS_TABLE_NUMBER,
1029ed4e6cd4Schristos 	  .scope = OPTIONS_TABLE_WINDOW,
1030d530c4d0Sjmmv 	  .minimum = 0,
1031d530c4d0Sjmmv 	  .maximum = INT_MAX,
10329fb66d81Schristos 	  .default_num = 0,
10339fb66d81Schristos 	  .text = "Time after which an alert is triggered by silence. "
10349fb66d81Schristos 		  "Zero means no alert."
10359fb66d81Schristos 
1036d530c4d0Sjmmv 	},
1037d530c4d0Sjmmv 
1038d530c4d0Sjmmv 	{ .name = "other-pane-height",
10399fb66d81Schristos 	  .type = OPTIONS_TABLE_STRING,
1040ed4e6cd4Schristos 	  .scope = OPTIONS_TABLE_WINDOW,
10419fb66d81Schristos 	  .default_str = "0",
10429fb66d81Schristos 	  .text = "Height of the other panes in the 'main-horizontal' layout. "
10439fb66d81Schristos 		  "This may be a percentage, for example '10%'."
1044d530c4d0Sjmmv 	},
1045d530c4d0Sjmmv 
1046d530c4d0Sjmmv 	{ .name = "other-pane-width",
10479fb66d81Schristos 	  .type = OPTIONS_TABLE_STRING,
1048ed4e6cd4Schristos 	  .scope = OPTIONS_TABLE_WINDOW,
10499fb66d81Schristos 	  .default_str = "0",
10509fb66d81Schristos 	  .text = "Height of the other panes in the 'main-vertical' layout. "
10519fb66d81Schristos 		  "This may be a percentage, for example '10%'."
1052d530c4d0Sjmmv 	},
1053d530c4d0Sjmmv 
10545494e770Schristos 	{ .name = "pane-active-border-style",
10559fb66d81Schristos 	  .type = OPTIONS_TABLE_STRING,
1056ed4e6cd4Schristos 	  .scope = OPTIONS_TABLE_WINDOW,
10579fb66d81Schristos 	  .default_str = "#{?pane_in_mode,fg=yellow,#{?synchronize-panes,fg=red,fg=green}}",
10589fb66d81Schristos 	  .flags = OPTIONS_TABLE_IS_STYLE,
10599fb66d81Schristos 	  .separator = ",",
10609fb66d81Schristos 	  .text = "Style of the active pane border."
10615494e770Schristos 	},
10625494e770Schristos 
1063928fc495Schristos 	{ .name = "pane-base-index",
1064928fc495Schristos 	  .type = OPTIONS_TABLE_NUMBER,
1065ed4e6cd4Schristos 	  .scope = OPTIONS_TABLE_WINDOW,
1066928fc495Schristos 	  .minimum = 0,
1067928fc495Schristos 	  .maximum = USHRT_MAX,
10689fb66d81Schristos 	  .default_num = 0,
10699fb66d81Schristos 	  .text = "Index of the first pane in each window."
1070928fc495Schristos 	},
1071928fc495Schristos 
10724e179ddaSchristos 	{ .name = "pane-border-format",
10734e179ddaSchristos 	  .type = OPTIONS_TABLE_STRING,
10746db26757Swiz 	  .scope = OPTIONS_TABLE_WINDOW|OPTIONS_TABLE_PANE,
10754e179ddaSchristos 	  .default_str = "#{?pane_active,#[reverse],}#{pane_index}#[default] "
10769fb66d81Schristos 			 "\"#{pane_title}\"",
10779fb66d81Schristos 	  .text = "Format of text in the pane status lines."
10789fb66d81Schristos 	},
10799fb66d81Schristos 
10806db26757Swiz 	{ .name = "pane-border-indicators",
10816db26757Swiz 	  .type = OPTIONS_TABLE_CHOICE,
10826db26757Swiz 	  .scope = OPTIONS_TABLE_WINDOW,
10836db26757Swiz 	  .choices = options_table_pane_border_indicators_list,
10846db26757Swiz 	  .default_num = PANE_BORDER_COLOUR,
10856db26757Swiz 	  .text = "Whether to indicate the active pane by colouring border or "
10866db26757Swiz 		  "displaying arrow markers."
10876db26757Swiz 	},
10886db26757Swiz 
10899fb66d81Schristos 	{ .name = "pane-border-lines",
10909fb66d81Schristos 	  .type = OPTIONS_TABLE_CHOICE,
10919fb66d81Schristos 	  .scope = OPTIONS_TABLE_WINDOW,
10926db26757Swiz 	  .choices = options_table_pane_border_lines_list,
10939fb66d81Schristos 	  .default_num = PANE_LINES_SINGLE,
10946db26757Swiz 	  .text = "Type of characters used to draw pane border lines. Some of "
10956db26757Swiz 		  "these are only supported on terminals with UTF-8 support."
10964e179ddaSchristos 	},
10974e179ddaSchristos 
10984e179ddaSchristos 	{ .name = "pane-border-status",
10994e179ddaSchristos 	  .type = OPTIONS_TABLE_CHOICE,
11004e179ddaSchristos 	  .scope = OPTIONS_TABLE_WINDOW,
11014e179ddaSchristos 	  .choices = options_table_pane_status_list,
11029fb66d81Schristos 	  .default_num = PANE_STATUS_OFF,
11039fb66d81Schristos 	  .text = "Position of the pane status lines."
11044e179ddaSchristos 	},
11054e179ddaSchristos 
11065494e770Schristos 	{ .name = "pane-border-style",
11079fb66d81Schristos 	  .type = OPTIONS_TABLE_STRING,
1108ed4e6cd4Schristos 	  .scope = OPTIONS_TABLE_WINDOW,
11099fb66d81Schristos 	  .default_str = "default",
11109fb66d81Schristos 	  .flags = OPTIONS_TABLE_IS_STYLE,
11119fb66d81Schristos 	  .separator = ",",
11129fb66d81Schristos 	  .text = "Style of the pane status lines."
11135494e770Schristos 	},
11145494e770Schristos 
11156db26757Swiz 	{ .name = "pane-colours",
11166db26757Swiz 	  .type = OPTIONS_TABLE_COLOUR,
11176db26757Swiz 	  .scope = OPTIONS_TABLE_WINDOW|OPTIONS_TABLE_PANE,
11186db26757Swiz 	  .default_str = "",
11196db26757Swiz 	  .flags = OPTIONS_TABLE_IS_ARRAY,
11206db26757Swiz 	  .text = "The default colour palette for colours zero to 255."
11216db26757Swiz 	},
11226db26757Swiz 
11236db26757Swiz 	{ .name = "popup-style",
11246db26757Swiz 	  .type = OPTIONS_TABLE_STRING,
11256db26757Swiz 	  .scope = OPTIONS_TABLE_WINDOW,
11266db26757Swiz 	  .default_str = "default",
11276db26757Swiz 	  .flags = OPTIONS_TABLE_IS_STYLE,
11286db26757Swiz 	  .separator = ",",
11296db26757Swiz 	  .text = "Default style of popups."
11306db26757Swiz 	},
11316db26757Swiz 
11326db26757Swiz 	{ .name = "popup-border-style",
11336db26757Swiz 	  .type = OPTIONS_TABLE_STRING,
11346db26757Swiz 	  .scope = OPTIONS_TABLE_WINDOW,
11356db26757Swiz 	  .default_str = "default",
11366db26757Swiz 	  .flags = OPTIONS_TABLE_IS_STYLE,
11376db26757Swiz 	  .separator = ",",
11386db26757Swiz 	  .text = "Default style of popup borders."
11396db26757Swiz 	},
11406db26757Swiz 
11416db26757Swiz 	{ .name = "popup-border-lines",
11426db26757Swiz 	  .type = OPTIONS_TABLE_CHOICE,
11436db26757Swiz 	  .scope = OPTIONS_TABLE_WINDOW,
11446db26757Swiz 	  .choices = options_table_popup_border_lines_list,
11456db26757Swiz 	  .default_num = BOX_LINES_SINGLE,
11466db26757Swiz 	  .text = "Type of characters used to draw popup border lines. Some of "
11476db26757Swiz 		  "these are only supported on terminals with UTF-8 support."
11486db26757Swiz 	},
11496db26757Swiz 
1150d530c4d0Sjmmv 	{ .name = "remain-on-exit",
11519fb66d81Schristos 	  .type = OPTIONS_TABLE_CHOICE,
11526483eba0Schristos 	  .scope = OPTIONS_TABLE_WINDOW|OPTIONS_TABLE_PANE,
11539fb66d81Schristos 	  .choices = options_table_remain_on_exit_list,
11549fb66d81Schristos 	  .default_num = 0,
11559fb66d81Schristos 	  .text = "Whether panes should remain ('on') or be automatically "
11569fb66d81Schristos 		  "killed ('off' or 'failed') when the program inside exits."
1157d530c4d0Sjmmv 	},
1158d530c4d0Sjmmv 
11596db26757Swiz 	{ .name = "remain-on-exit-format",
11606db26757Swiz 	  .type = OPTIONS_TABLE_STRING,
11616db26757Swiz 	  .scope = OPTIONS_TABLE_WINDOW|OPTIONS_TABLE_PANE,
11626db26757Swiz 	  .default_str = "Pane is dead ("
11636db26757Swiz 			 "#{?#{!=:#{pane_dead_status},},"
11646db26757Swiz 	                 "status #{pane_dead_status},}"
11656db26757Swiz 			 "#{?#{!=:#{pane_dead_signal},},"
11666db26757Swiz 	                 "signal #{pane_dead_signal},}, "
11676db26757Swiz 			 "#{t:pane_dead_time})",
11686db26757Swiz 	  .text = "Message shown after the program in a pane has exited, if "
11696db26757Swiz 	          "remain-on-exit is enabled."
11706db26757Swiz 	},
11716db26757Swiz 
11726db26757Swiz 	{ .name = "scroll-on-clear",
11736db26757Swiz 	  .type = OPTIONS_TABLE_FLAG,
11746db26757Swiz 	  .scope = OPTIONS_TABLE_WINDOW|OPTIONS_TABLE_PANE,
11756db26757Swiz 	  .default_num = 1,
11766db26757Swiz 	  .text = "Whether the contents of the screen should be scrolled into"
11776db26757Swiz 		  "history when clearing the whole screen."
11786db26757Swiz 	},
11796db26757Swiz 
1180d530c4d0Sjmmv 	{ .name = "synchronize-panes",
1181d530c4d0Sjmmv 	  .type = OPTIONS_TABLE_FLAG,
11829fb66d81Schristos 	  .scope = OPTIONS_TABLE_WINDOW|OPTIONS_TABLE_PANE,
11839fb66d81Schristos 	  .default_num = 0,
11849fb66d81Schristos 	  .text = "Whether typing should be sent to all panes simultaneously."
1185d530c4d0Sjmmv 	},
1186d530c4d0Sjmmv 
11875494e770Schristos 	{ .name = "window-active-style",
11889fb66d81Schristos 	  .type = OPTIONS_TABLE_STRING,
11896483eba0Schristos 	  .scope = OPTIONS_TABLE_WINDOW|OPTIONS_TABLE_PANE,
11909fb66d81Schristos 	  .default_str = "default",
11919fb66d81Schristos 	  .flags = OPTIONS_TABLE_IS_STYLE,
11929fb66d81Schristos 	  .separator = ",",
11939fb66d81Schristos 	  .text = "Default style of the active pane."
11945494e770Schristos 	},
11955494e770Schristos 
1196ef36e747Schristos 	{ .name = "window-size",
1197ef36e747Schristos 	  .type = OPTIONS_TABLE_CHOICE,
1198ef36e747Schristos 	  .scope = OPTIONS_TABLE_WINDOW,
1199ef36e747Schristos 	  .choices = options_table_window_size_list,
12009fb66d81Schristos 	  .default_num = WINDOW_SIZE_LATEST,
12019fb66d81Schristos 	  .text = "How window size is calculated. "
12029fb66d81Schristos 		  "'latest' uses the size of the most recently used client, "
12039fb66d81Schristos 		  "'largest' the largest client, 'smallest' the smallest "
12049fb66d81Schristos 		  "client and 'manual' a size set by the 'resize-window' "
12059fb66d81Schristos 		  "command."
1206ef36e747Schristos 	},
1207ef36e747Schristos 
12085494e770Schristos 	{ .name = "window-style",
12099fb66d81Schristos 	  .type = OPTIONS_TABLE_STRING,
12106483eba0Schristos 	  .scope = OPTIONS_TABLE_WINDOW|OPTIONS_TABLE_PANE,
12119fb66d81Schristos 	  .default_str = "default",
12129fb66d81Schristos 	  .flags = OPTIONS_TABLE_IS_STYLE,
12139fb66d81Schristos 	  .separator = ",",
12149fb66d81Schristos 	  .text = "Default style of panes that are not the active pane."
12155494e770Schristos 	},
12165494e770Schristos 
1217928fc495Schristos 	{ .name = "window-status-activity-style",
12189fb66d81Schristos 	  .type = OPTIONS_TABLE_STRING,
1219ed4e6cd4Schristos 	  .scope = OPTIONS_TABLE_WINDOW,
12209fb66d81Schristos 	  .default_str = "reverse",
12219fb66d81Schristos 	  .flags = OPTIONS_TABLE_IS_STYLE,
12229fb66d81Schristos 	  .separator = ",",
12239fb66d81Schristos 	  .text = "Style of windows in the status line with an activity alert."
1224d530c4d0Sjmmv 	},
1225d530c4d0Sjmmv 
1226928fc495Schristos 	{ .name = "window-status-bell-style",
12279fb66d81Schristos 	  .type = OPTIONS_TABLE_STRING,
1228ed4e6cd4Schristos 	  .scope = OPTIONS_TABLE_WINDOW,
12299fb66d81Schristos 	  .default_str = "reverse",
12309fb66d81Schristos 	  .flags = OPTIONS_TABLE_IS_STYLE,
12319fb66d81Schristos 	  .separator = ",",
12329fb66d81Schristos 	  .text = "Style of windows in the status line with a bell alert."
1233d530c4d0Sjmmv 	},
1234d530c4d0Sjmmv 
1235d530c4d0Sjmmv 	{ .name = "window-status-current-format",
1236d530c4d0Sjmmv 	  .type = OPTIONS_TABLE_STRING,
1237ed4e6cd4Schristos 	  .scope = OPTIONS_TABLE_WINDOW,
12389fb66d81Schristos 	  .default_str = "#I:#W#{?window_flags,#{window_flags}, }",
12399fb66d81Schristos 	  .text = "Format of the current window in the status line."
1240d530c4d0Sjmmv 	},
1241d530c4d0Sjmmv 
1242928fc495Schristos 	{ .name = "window-status-current-style",
12439fb66d81Schristos 	  .type = OPTIONS_TABLE_STRING,
1244ed4e6cd4Schristos 	  .scope = OPTIONS_TABLE_WINDOW,
12459fb66d81Schristos 	  .default_str = "default",
12469fb66d81Schristos 	  .flags = OPTIONS_TABLE_IS_STYLE,
12479fb66d81Schristos 	  .separator = ",",
12489fb66d81Schristos 	  .text = "Style of the current window in the status line."
1249928fc495Schristos 	},
1250928fc495Schristos 
1251d530c4d0Sjmmv 	{ .name = "window-status-format",
1252d530c4d0Sjmmv 	  .type = OPTIONS_TABLE_STRING,
1253ed4e6cd4Schristos 	  .scope = OPTIONS_TABLE_WINDOW,
12549fb66d81Schristos 	  .default_str = "#I:#W#{?window_flags,#{window_flags}, }",
12559fb66d81Schristos 	  .text = "Format of windows in the status line, except the current "
12569fb66d81Schristos 		  "window."
1257d530c4d0Sjmmv 	},
1258d530c4d0Sjmmv 
1259928fc495Schristos 	{ .name = "window-status-last-style",
12609fb66d81Schristos 	  .type = OPTIONS_TABLE_STRING,
1261ed4e6cd4Schristos 	  .scope = OPTIONS_TABLE_WINDOW,
12629fb66d81Schristos 	  .default_str = "default",
12639fb66d81Schristos 	  .flags = OPTIONS_TABLE_IS_STYLE,
12649fb66d81Schristos 	  .separator = ",",
12659fb66d81Schristos 	  .text = "Style of the last window in the status line."
1266928fc495Schristos 	},
1267928fc495Schristos 
1268928fc495Schristos 	{ .name = "window-status-separator",
1269d530c4d0Sjmmv 	  .type = OPTIONS_TABLE_STRING,
1270ed4e6cd4Schristos 	  .scope = OPTIONS_TABLE_WINDOW,
12719fb66d81Schristos 	  .default_str = " ",
12729fb66d81Schristos 	  .text = "Separator between windows in the status line."
1273928fc495Schristos 	},
1274928fc495Schristos 
1275928fc495Schristos 	{ .name = "window-status-style",
12769fb66d81Schristos 	  .type = OPTIONS_TABLE_STRING,
1277ed4e6cd4Schristos 	  .scope = OPTIONS_TABLE_WINDOW,
12789fb66d81Schristos 	  .default_str = "default",
12799fb66d81Schristos 	  .flags = OPTIONS_TABLE_IS_STYLE,
12809fb66d81Schristos 	  .separator = ",",
12819fb66d81Schristos 	  .text = "Style of windows in the status line, except the current and "
12829fb66d81Schristos 		  "last windows."
1283928fc495Schristos 	},
1284928fc495Schristos 
1285928fc495Schristos 	{ .name = "wrap-search",
1286928fc495Schristos 	  .type = OPTIONS_TABLE_FLAG,
1287ed4e6cd4Schristos 	  .scope = OPTIONS_TABLE_WINDOW,
12889fb66d81Schristos 	  .default_num = 1,
12899fb66d81Schristos 	  .text = "Whether searching in copy mode should wrap at the top or "
12909fb66d81Schristos 		  "bottom."
1291d530c4d0Sjmmv 	},
1292d530c4d0Sjmmv 
12939fb66d81Schristos 	{ .name = "xterm-keys", /* no longer used */
1294d530c4d0Sjmmv 	  .type = OPTIONS_TABLE_FLAG,
1295ed4e6cd4Schristos 	  .scope = OPTIONS_TABLE_WINDOW,
12969fb66d81Schristos 	  .default_num = 1,
12979fb66d81Schristos 	  .text = "Whether xterm-style function key sequences should be sent. "
12989fb66d81Schristos 		  "This option is no longer used."
1299d530c4d0Sjmmv 	},
1300d530c4d0Sjmmv 
13016483eba0Schristos 	/* Hook options. */
13026483eba0Schristos 	OPTIONS_TABLE_HOOK("after-bind-key", ""),
13036483eba0Schristos 	OPTIONS_TABLE_HOOK("after-capture-pane", ""),
13046483eba0Schristos 	OPTIONS_TABLE_HOOK("after-copy-mode", ""),
13056483eba0Schristos 	OPTIONS_TABLE_HOOK("after-display-message", ""),
13066483eba0Schristos 	OPTIONS_TABLE_HOOK("after-display-panes", ""),
13076483eba0Schristos 	OPTIONS_TABLE_HOOK("after-kill-pane", ""),
13086483eba0Schristos 	OPTIONS_TABLE_HOOK("after-list-buffers", ""),
13096483eba0Schristos 	OPTIONS_TABLE_HOOK("after-list-clients", ""),
13106483eba0Schristos 	OPTIONS_TABLE_HOOK("after-list-keys", ""),
13116483eba0Schristos 	OPTIONS_TABLE_HOOK("after-list-panes", ""),
13126483eba0Schristos 	OPTIONS_TABLE_HOOK("after-list-sessions", ""),
13136483eba0Schristos 	OPTIONS_TABLE_HOOK("after-list-windows", ""),
13146483eba0Schristos 	OPTIONS_TABLE_HOOK("after-load-buffer", ""),
13156483eba0Schristos 	OPTIONS_TABLE_HOOK("after-lock-server", ""),
13166483eba0Schristos 	OPTIONS_TABLE_HOOK("after-new-session", ""),
13176483eba0Schristos 	OPTIONS_TABLE_HOOK("after-new-window", ""),
13186483eba0Schristos 	OPTIONS_TABLE_HOOK("after-paste-buffer", ""),
13196483eba0Schristos 	OPTIONS_TABLE_HOOK("after-pipe-pane", ""),
13206483eba0Schristos 	OPTIONS_TABLE_HOOK("after-queue", ""),
13216483eba0Schristos 	OPTIONS_TABLE_HOOK("after-refresh-client", ""),
13226483eba0Schristos 	OPTIONS_TABLE_HOOK("after-rename-session", ""),
13236483eba0Schristos 	OPTIONS_TABLE_HOOK("after-rename-window", ""),
13246483eba0Schristos 	OPTIONS_TABLE_HOOK("after-resize-pane", ""),
13256483eba0Schristos 	OPTIONS_TABLE_HOOK("after-resize-window", ""),
13266483eba0Schristos 	OPTIONS_TABLE_HOOK("after-save-buffer", ""),
13276483eba0Schristos 	OPTIONS_TABLE_HOOK("after-select-layout", ""),
13286483eba0Schristos 	OPTIONS_TABLE_HOOK("after-select-pane", ""),
13296483eba0Schristos 	OPTIONS_TABLE_HOOK("after-select-window", ""),
13306483eba0Schristos 	OPTIONS_TABLE_HOOK("after-send-keys", ""),
13316483eba0Schristos 	OPTIONS_TABLE_HOOK("after-set-buffer", ""),
13326483eba0Schristos 	OPTIONS_TABLE_HOOK("after-set-environment", ""),
13336483eba0Schristos 	OPTIONS_TABLE_HOOK("after-set-hook", ""),
13346483eba0Schristos 	OPTIONS_TABLE_HOOK("after-set-option", ""),
13356483eba0Schristos 	OPTIONS_TABLE_HOOK("after-show-environment", ""),
13366483eba0Schristos 	OPTIONS_TABLE_HOOK("after-show-messages", ""),
13376483eba0Schristos 	OPTIONS_TABLE_HOOK("after-show-options", ""),
13386483eba0Schristos 	OPTIONS_TABLE_HOOK("after-split-window", ""),
13396483eba0Schristos 	OPTIONS_TABLE_HOOK("after-unbind-key", ""),
13406483eba0Schristos 	OPTIONS_TABLE_HOOK("alert-activity", ""),
13416483eba0Schristos 	OPTIONS_TABLE_HOOK("alert-bell", ""),
13426483eba0Schristos 	OPTIONS_TABLE_HOOK("alert-silence", ""),
13436db26757Swiz 	OPTIONS_TABLE_HOOK("client-active", ""),
13446483eba0Schristos 	OPTIONS_TABLE_HOOK("client-attached", ""),
13456483eba0Schristos 	OPTIONS_TABLE_HOOK("client-detached", ""),
13466db26757Swiz 	OPTIONS_TABLE_HOOK("client-focus-in", ""),
13476db26757Swiz 	OPTIONS_TABLE_HOOK("client-focus-out", ""),
13486483eba0Schristos 	OPTIONS_TABLE_HOOK("client-resized", ""),
13496483eba0Schristos 	OPTIONS_TABLE_HOOK("client-session-changed", ""),
1350*f8cf1a91Swiz 	OPTIONS_TABLE_HOOK("command-error", ""),
13519fb66d81Schristos 	OPTIONS_TABLE_PANE_HOOK("pane-died", ""),
13529fb66d81Schristos 	OPTIONS_TABLE_PANE_HOOK("pane-exited", ""),
13539fb66d81Schristos 	OPTIONS_TABLE_PANE_HOOK("pane-focus-in", ""),
13549fb66d81Schristos 	OPTIONS_TABLE_PANE_HOOK("pane-focus-out", ""),
13559fb66d81Schristos 	OPTIONS_TABLE_PANE_HOOK("pane-mode-changed", ""),
13569fb66d81Schristos 	OPTIONS_TABLE_PANE_HOOK("pane-set-clipboard", ""),
13579fb66d81Schristos 	OPTIONS_TABLE_PANE_HOOK("pane-title-changed", ""),
13586483eba0Schristos 	OPTIONS_TABLE_HOOK("session-closed", ""),
13596483eba0Schristos 	OPTIONS_TABLE_HOOK("session-created", ""),
13606483eba0Schristos 	OPTIONS_TABLE_HOOK("session-renamed", ""),
13616483eba0Schristos 	OPTIONS_TABLE_HOOK("session-window-changed", ""),
13629fb66d81Schristos 	OPTIONS_TABLE_WINDOW_HOOK("window-layout-changed", ""),
13636db26757Swiz 	OPTIONS_TABLE_HOOK("window-linked", ""),
13649fb66d81Schristos 	OPTIONS_TABLE_WINDOW_HOOK("window-pane-changed", ""),
13659fb66d81Schristos 	OPTIONS_TABLE_WINDOW_HOOK("window-renamed", ""),
13666db26757Swiz 	OPTIONS_TABLE_WINDOW_HOOK("window-resized", ""),
13676db26757Swiz 	OPTIONS_TABLE_HOOK("window-unlinked", ""),
13686483eba0Schristos 
1369d530c4d0Sjmmv 	{ .name = NULL }
1370d530c4d0Sjmmv };
1371