Annotation of src/usr.bin/tmux/options-table.c, Revision 1.144
1.144 ! nicm 1: /* $OpenBSD: options-table.c,v 1.143 2021/06/10 07:56:47 nicm Exp $ */
1.1 nicm 2:
3: /*
1.71 nicm 4: * Copyright (c) 2011 Nicholas Marriott <nicholas.marriott@gmail.com>
1.1 nicm 5: *
6: * Permission to use, copy, modify, and distribute this software for any
7: * purpose with or without fee is hereby granted, provided that the above
8: * copyright notice and this permission notice appear in all copies.
9: *
10: * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
11: * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
12: * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
13: * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
14: * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER
15: * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING
16: * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
17: */
18:
19: #include <sys/types.h>
20:
21: #include <string.h>
22: #include <paths.h>
23:
24: #include "tmux.h"
25:
26: /*
27: * This file has a tables with all the server, session and window
28: * options. These tables are the master copy of the options with their real
29: * (user-visible) types, range limits and default values. At start these are
30: * copied into the runtime global options trees (which only has number and
1.49 nicm 31: * string types). These tables are then used to look up the real type when the
32: * user sets an option or its value needs to be shown.
1.1 nicm 33: */
34:
35: /* Choice option type lists. */
1.74 nicm 36: static const char *options_table_mode_keys_list[] = {
1.1 nicm 37: "emacs", "vi", NULL
38: };
1.74 nicm 39: static const char *options_table_clock_mode_style_list[] = {
1.1 nicm 40: "12", "24", NULL
41: };
1.99 nicm 42: static const char *options_table_status_list[] = {
43: "off", "on", "2", "3", "4", "5", NULL
44: };
1.74 nicm 45: static const char *options_table_status_keys_list[] = {
1.1 nicm 46: "emacs", "vi", NULL
47: };
1.74 nicm 48: static const char *options_table_status_justify_list[] = {
1.140 nicm 49: "left", "centre", "right", "absolute-centre", NULL
1.1 nicm 50: };
1.74 nicm 51: static const char *options_table_status_position_list[] = {
1.20 nicm 52: "top", "bottom", NULL
53: };
1.74 nicm 54: static const char *options_table_bell_action_list[] = {
1.59 nicm 55: "none", "any", "current", "other", NULL
1.1 nicm 56: };
1.91 nicm 57: static const char *options_table_visual_bell_list[] = {
58: "off", "on", "both", NULL
59: };
1.74 nicm 60: static const char *options_table_pane_status_list[] = {
1.72 nicm 61: "off", "top", "bottom", NULL
62: };
1.129 nicm 63: static const char *options_table_pane_lines_list[] = {
64: "single", "double", "heavy", "simple", "number", NULL
65: };
1.89 nicm 66: static const char *options_table_set_clipboard_list[] = {
67: "off", "external", "on", NULL
68: };
1.97 nicm 69: static const char *options_table_window_size_list[] = {
1.111 nicm 70: "largest", "smallest", "manual", "latest", NULL
1.97 nicm 71: };
1.137 nicm 72: static const char *options_table_remain_on_exit_list[] = {
73: "off", "on", "failed", NULL
74: };
1.139 nicm 75: static const char *options_table_detach_on_destroy_list[] = {
76: "off", "on", "no-detached", NULL
77: };
1.141 nicm 78: static const char *options_table_extended_keys_list[] = {
79: "off", "on", "always", NULL
80: };
1.1 nicm 81:
1.99 nicm 82: /* Status line format. */
83: #define OPTIONS_TABLE_STATUS_FORMAT1 \
84: "#[align=left range=left #{status-left-style}]" \
1.114 nicm 85: "#[push-default]" \
86: "#{T;=/#{status-left-length}:status-left}" \
87: "#[pop-default]" \
88: "#[norange default]" \
1.99 nicm 89: "#[list=on align=#{status-justify}]" \
90: "#[list=left-marker]<#[list=right-marker]>#[list=on]" \
91: "#{W:" \
1.101 nicm 92: "#[range=window|#{window_index} " \
93: "#{window-status-style}" \
94: "#{?#{&&:#{window_last_flag}," \
95: "#{!=:#{window-status-last-style},default}}, " \
96: "#{window-status-last-style}," \
97: "}" \
98: "#{?#{&&:#{window_bell_flag}," \
99: "#{!=:#{window-status-bell-style},default}}, " \
100: "#{window-status-bell-style}," \
1.102 nicm 101: "#{?#{&&:#{||:#{window_activity_flag}," \
102: "#{window_silence_flag}}," \
1.101 nicm 103: "#{!=:" \
104: "#{window-status-activity-style}," \
105: "default}}, " \
106: "#{window-status-activity-style}," \
1.99 nicm 107: "}" \
1.101 nicm 108: "}" \
1.99 nicm 109: "]" \
1.110 nicm 110: "#[push-default]" \
1.99 nicm 111: "#{T:window-status-format}" \
1.110 nicm 112: "#[pop-default]" \
1.99 nicm 113: "#[norange default]" \
114: "#{?window_end_flag,,#{window-status-separator}}" \
115: "," \
1.101 nicm 116: "#[range=window|#{window_index} list=focus " \
1.103 nicm 117: "#{?#{!=:#{window-status-current-style},default}," \
1.127 nicm 118: "#{window-status-current-style}," \
119: "#{window-status-style}" \
120: "}" \
1.101 nicm 121: "#{?#{&&:#{window_last_flag}," \
122: "#{!=:#{window-status-last-style},default}}, " \
123: "#{window-status-last-style}," \
124: "}" \
125: "#{?#{&&:#{window_bell_flag}," \
126: "#{!=:#{window-status-bell-style},default}}, " \
127: "#{window-status-bell-style}," \
1.102 nicm 128: "#{?#{&&:#{||:#{window_activity_flag}," \
129: "#{window_silence_flag}}," \
1.101 nicm 130: "#{!=:" \
131: "#{window-status-activity-style}," \
132: "default}}, " \
133: "#{window-status-activity-style}," \
1.99 nicm 134: "}" \
1.101 nicm 135: "}" \
1.99 nicm 136: "]" \
1.110 nicm 137: "#[push-default]" \
1.99 nicm 138: "#{T:window-status-current-format}" \
1.110 nicm 139: "#[pop-default]" \
1.99 nicm 140: "#[norange list=on default]" \
141: "#{?window_end_flag,,#{window-status-separator}}" \
142: "}" \
143: "#[nolist align=right range=right #{status-right-style}]" \
1.114 nicm 144: "#[push-default]" \
145: "#{T;=/#{status-right-length}:status-right}" \
146: "#[pop-default]" \
147: "#[norange default]"
1.99 nicm 148: #define OPTIONS_TABLE_STATUS_FORMAT2 \
149: "#[align=centre]#{P:#{?pane_active,#[reverse],}" \
150: "#{pane_index}[#{pane_width}x#{pane_height}]#[default] }"
151: static const char *options_table_status_format_default[] = {
152: OPTIONS_TABLE_STATUS_FORMAT1, OPTIONS_TABLE_STATUS_FORMAT2, NULL
153: };
154:
1.116 nicm 155: /* Helpers for hook options. */
1.105 nicm 156: #define OPTIONS_TABLE_HOOK(hook_name, default_value) \
157: { .name = hook_name, \
158: .type = OPTIONS_TABLE_COMMAND, \
159: .scope = OPTIONS_TABLE_SESSION, \
160: .flags = OPTIONS_TABLE_IS_ARRAY|OPTIONS_TABLE_IS_HOOK, \
161: .default_str = default_value, \
162: .separator = "" \
163: }
164:
1.116 nicm 165: #define OPTIONS_TABLE_PANE_HOOK(hook_name, default_value) \
166: { .name = hook_name, \
167: .type = OPTIONS_TABLE_COMMAND, \
168: .scope = OPTIONS_TABLE_WINDOW|OPTIONS_TABLE_PANE, \
169: .flags = OPTIONS_TABLE_IS_ARRAY|OPTIONS_TABLE_IS_HOOK, \
170: .default_str = default_value, \
171: .separator = "" \
172: }
173:
174: #define OPTIONS_TABLE_WINDOW_HOOK(hook_name, default_value) \
175: { .name = hook_name, \
176: .type = OPTIONS_TABLE_COMMAND, \
177: .scope = OPTIONS_TABLE_WINDOW, \
178: .flags = OPTIONS_TABLE_IS_ARRAY|OPTIONS_TABLE_IS_HOOK, \
179: .default_str = default_value, \
180: .separator = "" \
181: }
1.134 nicm 182:
183: /* Map of name conversions. */
184: const struct options_name_map options_other_names[] = {
185: { "display-panes-color", "display-panes-colour" },
186: { "display-panes-active-color", "display-panes-active-colour" },
187: { "clock-mode-color", "clock-mode-colour" },
188: { NULL, NULL }
189: };
1.116 nicm 190:
1.80 nicm 191: /* Top-level options. */
1.67 nicm 192: const struct options_table_entry options_table[] = {
1.105 nicm 193: /* Server options. */
1.112 nicm 194: { .name = "backspace",
195: .type = OPTIONS_TABLE_KEY,
196: .scope = OPTIONS_TABLE_SERVER,
197: .default_num = '\177',
1.127 nicm 198: .text = "The key to send for backspace."
1.112 nicm 199: },
200:
1.1 nicm 201: { .name = "buffer-limit",
202: .type = OPTIONS_TABLE_NUMBER,
1.67 nicm 203: .scope = OPTIONS_TABLE_SERVER,
1.1 nicm 204: .minimum = 1,
205: .maximum = INT_MAX,
1.127 nicm 206: .default_num = 50,
207: .text = "The maximum number of automatic buffers. "
208: "When this is reached, the oldest buffer is deleted."
1.83 nicm 209: },
210:
211: { .name = "command-alias",
1.104 nicm 212: .type = OPTIONS_TABLE_STRING,
1.83 nicm 213: .scope = OPTIONS_TABLE_SERVER,
1.104 nicm 214: .flags = OPTIONS_TABLE_IS_ARRAY,
1.83 nicm 215: .default_str = "split-pane=split-window,"
1.84 nicm 216: "splitp=split-window,"
217: "server-info=show-messages -JT,"
1.88 nicm 218: "info=show-messages -JT,"
219: "choose-window=choose-tree -w,"
220: "choose-session=choose-tree -s",
1.127 nicm 221: .separator = ",",
222: .text = "Array of command aliases. "
223: "Each entry is an alias and a command separated by '='."
1.117 nicm 224: },
225:
226: { .name = "copy-command",
227: .type = OPTIONS_TABLE_STRING,
228: .scope = OPTIONS_TABLE_SERVER,
1.127 nicm 229: .default_str = "",
230: .text = "Shell command run when text is copied. "
231: "If empty, no command is run."
1.81 nicm 232: },
233:
1.56 nicm 234: { .name = "default-terminal",
235: .type = OPTIONS_TABLE_STRING,
1.67 nicm 236: .scope = OPTIONS_TABLE_SERVER,
1.127 nicm 237: .default_str = "screen",
238: .text = "Default for the 'TERM' environment variable."
1.125 nicm 239: },
240:
241: { .name = "editor",
242: .type = OPTIONS_TABLE_STRING,
243: .scope = OPTIONS_TABLE_SERVER,
1.127 nicm 244: .default_str = _PATH_VI,
245: .text = "Editor run to edit files."
1.56 nicm 246: },
247:
1.1 nicm 248: { .name = "escape-time",
249: .type = OPTIONS_TABLE_NUMBER,
1.67 nicm 250: .scope = OPTIONS_TABLE_SERVER,
1.1 nicm 251: .minimum = 0,
252: .maximum = INT_MAX,
1.127 nicm 253: .default_num = 500,
254: .text = "Time to wait before assuming a key is Escape."
1.95 nicm 255: },
256:
257: { .name = "exit-empty",
258: .type = OPTIONS_TABLE_FLAG,
259: .scope = OPTIONS_TABLE_SERVER,
1.127 nicm 260: .default_num = 1,
261: .text = "Whether the server should exit if there are no sessions."
1.1 nicm 262: },
263:
264: { .name = "exit-unattached",
1.38 nicm 265: .type = OPTIONS_TABLE_FLAG,
1.67 nicm 266: .scope = OPTIONS_TABLE_SERVER,
1.127 nicm 267: .default_num = 0,
268: .text = "Whether the server should exit if there are no attached "
269: "clients."
1.131 nicm 270: },
271:
272: { .name = "extended-keys",
1.141 nicm 273: .type = OPTIONS_TABLE_CHOICE,
1.131 nicm 274: .scope = OPTIONS_TABLE_SERVER,
1.141 nicm 275: .choices = options_table_extended_keys_list,
1.131 nicm 276: .default_num = 0,
277: .text = "Whether to request extended key sequences from terminals "
278: "that support it."
1.38 nicm 279: },
280:
281: { .name = "focus-events",
1.1 nicm 282: .type = OPTIONS_TABLE_FLAG,
1.67 nicm 283: .scope = OPTIONS_TABLE_SERVER,
1.127 nicm 284: .default_num = 0,
285: .text = "Whether to send focus events to applications."
1.61 nicm 286: },
287:
288: { .name = "history-file",
289: .type = OPTIONS_TABLE_STRING,
1.67 nicm 290: .scope = OPTIONS_TABLE_SERVER,
1.127 nicm 291: .default_str = "",
292: .text = "Location of the command prompt history file. "
293: "Empty does not write a history file."
1.1 nicm 294: },
295:
1.46 nicm 296: { .name = "message-limit",
297: .type = OPTIONS_TABLE_NUMBER,
1.67 nicm 298: .scope = OPTIONS_TABLE_SERVER,
1.46 nicm 299: .minimum = 0,
300: .maximum = INT_MAX,
1.127 nicm 301: .default_num = 1000,
302: .text = "Maximum number of server messages to keep."
1.142 nicm 303: },
304:
305: { .name = "prompt-history-limit",
306: .type = OPTIONS_TABLE_NUMBER,
307: .scope = OPTIONS_TABLE_SERVER,
308: .minimum = 0,
309: .maximum = INT_MAX,
310: .default_num = 100,
311: .text = "Maximum number of commands to keep in history."
1.1 nicm 312: },
313:
1.8 nicm 314: { .name = "set-clipboard",
1.89 nicm 315: .type = OPTIONS_TABLE_CHOICE,
1.67 nicm 316: .scope = OPTIONS_TABLE_SERVER,
1.89 nicm 317: .choices = options_table_set_clipboard_list,
1.127 nicm 318: .default_num = 1,
319: .text = "Whether to attempt to set the system clipboard ('on' or "
320: "'external') and whether to allow applications to create "
321: "paste buffers with an escape sequence ('on' only)."
1.8 nicm 322: },
323:
1.45 nicm 324: { .name = "terminal-overrides",
1.104 nicm 325: .type = OPTIONS_TABLE_STRING,
1.67 nicm 326: .scope = OPTIONS_TABLE_SERVER,
1.104 nicm 327: .flags = OPTIONS_TABLE_IS_ARRAY,
1.122 nicm 328: .default_str = "",
1.127 nicm 329: .separator = ",",
330: .text = "List of terminal capabilities overrides."
1.118 nicm 331: },
332:
333: { .name = "terminal-features",
334: .type = OPTIONS_TABLE_STRING,
335: .scope = OPTIONS_TABLE_SERVER,
336: .flags = OPTIONS_TABLE_IS_ARRAY,
1.132 nicm 337: .default_str = "xterm*:clipboard:ccolour:cstyle:focus:title,"
1.127 nicm 338: "screen*:title",
339: .separator = ",",
340: .text = "List of terminal features, used if they cannot be "
341: "automatically detected."
1.90 nicm 342: },
343:
344: { .name = "user-keys",
1.104 nicm 345: .type = OPTIONS_TABLE_STRING,
1.90 nicm 346: .scope = OPTIONS_TABLE_SERVER,
1.104 nicm 347: .flags = OPTIONS_TABLE_IS_ARRAY,
1.90 nicm 348: .default_str = "",
1.127 nicm 349: .separator = ",",
350: .text = "User key assignments. "
351: "Each sequence in the list is translated into a key: "
352: "'User0', 'User1' and so on."
1.45 nicm 353: },
354:
1.105 nicm 355: /* Session options. */
1.91 nicm 356: { .name = "activity-action",
357: .type = OPTIONS_TABLE_CHOICE,
358: .scope = OPTIONS_TABLE_SESSION,
359: .choices = options_table_bell_action_list,
1.127 nicm 360: .default_num = ALERT_OTHER,
361: .text = "Action to take on an activity alert."
1.91 nicm 362: },
363:
1.31 nicm 364: { .name = "assume-paste-time",
365: .type = OPTIONS_TABLE_NUMBER,
1.67 nicm 366: .scope = OPTIONS_TABLE_SESSION,
1.31 nicm 367: .minimum = 0,
368: .maximum = INT_MAX,
369: .default_num = 1,
1.127 nicm 370: .unit = "milliseconds",
1.144 ! nicm 371: .text = "Maximum time between input to assume it is pasting rather "
1.127 nicm 372: "than typing."
1.31 nicm 373: },
374:
1.1 nicm 375: { .name = "base-index",
376: .type = OPTIONS_TABLE_NUMBER,
1.67 nicm 377: .scope = OPTIONS_TABLE_SESSION,
1.1 nicm 378: .minimum = 0,
379: .maximum = INT_MAX,
1.127 nicm 380: .default_num = 0,
381: .text = "Default index of the first window in each session."
1.1 nicm 382: },
383:
384: { .name = "bell-action",
385: .type = OPTIONS_TABLE_CHOICE,
1.67 nicm 386: .scope = OPTIONS_TABLE_SESSION,
1.1 nicm 387: .choices = options_table_bell_action_list,
1.127 nicm 388: .default_num = ALERT_ANY,
389: .text = "Action to take on a bell alert."
1.11 nicm 390: },
391:
1.1 nicm 392: { .name = "default-command",
393: .type = OPTIONS_TABLE_STRING,
1.67 nicm 394: .scope = OPTIONS_TABLE_SESSION,
1.127 nicm 395: .default_str = "",
396: .text = "Default command to run in new panes. If empty, a shell is "
397: "started."
1.1 nicm 398: },
399:
400: { .name = "default-shell",
401: .type = OPTIONS_TABLE_STRING,
1.67 nicm 402: .scope = OPTIONS_TABLE_SESSION,
1.127 nicm 403: .default_str = _PATH_BSHELL,
404: .text = "Location of default shell."
1.1 nicm 405: },
406:
1.97 nicm 407: { .name = "default-size",
408: .type = OPTIONS_TABLE_STRING,
409: .scope = OPTIONS_TABLE_SESSION,
410: .pattern = "[0-9]*x[0-9]*",
1.127 nicm 411: .default_str = "80x24",
412: .text = "Initial size of new sessions."
1.97 nicm 413: },
414:
1.1 nicm 415: { .name = "destroy-unattached",
416: .type = OPTIONS_TABLE_FLAG,
1.67 nicm 417: .scope = OPTIONS_TABLE_SESSION,
1.127 nicm 418: .default_num = 0,
419: .text = "Whether to destroy sessions when they have no attached "
420: "clients."
1.1 nicm 421: },
422:
423: { .name = "detach-on-destroy",
1.139 nicm 424: .type = OPTIONS_TABLE_CHOICE,
1.67 nicm 425: .scope = OPTIONS_TABLE_SESSION,
1.139 nicm 426: .choices = options_table_detach_on_destroy_list,
1.127 nicm 427: .default_num = 1,
428: .text = "Whether to detach when a session is destroyed, or switch "
429: "the client to another session if any exist."
1.1 nicm 430: },
431:
432: { .name = "display-panes-active-colour",
433: .type = OPTIONS_TABLE_COLOUR,
1.67 nicm 434: .scope = OPTIONS_TABLE_SESSION,
1.127 nicm 435: .default_num = 1,
436: .text = "Colour of the active pane for 'display-panes'."
1.1 nicm 437: },
438:
439: { .name = "display-panes-colour",
440: .type = OPTIONS_TABLE_COLOUR,
1.67 nicm 441: .scope = OPTIONS_TABLE_SESSION,
1.127 nicm 442: .default_num = 4,
443: .text = "Colour of not active panes for 'display-panes'."
1.1 nicm 444: },
445:
446: { .name = "display-panes-time",
447: .type = OPTIONS_TABLE_NUMBER,
1.67 nicm 448: .scope = OPTIONS_TABLE_SESSION,
1.1 nicm 449: .minimum = 1,
450: .maximum = INT_MAX,
1.127 nicm 451: .default_num = 1000,
452: .unit = "milliseconds",
453: .text = "Time for which 'display-panes' should show pane numbers."
1.1 nicm 454: },
455:
456: { .name = "display-time",
457: .type = OPTIONS_TABLE_NUMBER,
1.67 nicm 458: .scope = OPTIONS_TABLE_SESSION,
1.68 tim 459: .minimum = 0,
1.1 nicm 460: .maximum = INT_MAX,
1.127 nicm 461: .default_num = 750,
462: .unit = "milliseconds",
463: .text = "Time for which status line messages should appear."
1.1 nicm 464: },
465:
466: { .name = "history-limit",
467: .type = OPTIONS_TABLE_NUMBER,
1.67 nicm 468: .scope = OPTIONS_TABLE_SESSION,
1.1 nicm 469: .minimum = 0,
1.3 nicm 470: .maximum = INT_MAX,
1.127 nicm 471: .default_num = 2000,
472: .unit = "lines",
473: .text = "Maximum number of lines to keep in the history for each "
474: "pane. "
475: "If changed, the new value applies only to new panes."
1.70 nicm 476: },
477:
478: { .name = "key-table",
479: .type = OPTIONS_TABLE_STRING,
480: .scope = OPTIONS_TABLE_SESSION,
1.127 nicm 481: .default_str = "root",
482: .text = "Default key table. "
483: "Key presses are first looked up in this table."
1.1 nicm 484: },
485:
486: { .name = "lock-after-time",
487: .type = OPTIONS_TABLE_NUMBER,
1.67 nicm 488: .scope = OPTIONS_TABLE_SESSION,
1.1 nicm 489: .minimum = 0,
490: .maximum = INT_MAX,
1.127 nicm 491: .default_num = 0,
492: .unit = "seconds",
493: .text = "Time after which a client is locked if not used."
1.1 nicm 494: },
495:
496: { .name = "lock-command",
497: .type = OPTIONS_TABLE_STRING,
1.67 nicm 498: .scope = OPTIONS_TABLE_SESSION,
1.127 nicm 499: .default_str = "lock -np",
500: .text = "Shell command to run to lock a client."
1.1 nicm 501: },
502:
1.43 nicm 503: { .name = "message-command-style",
1.123 nicm 504: .type = OPTIONS_TABLE_STRING,
1.67 nicm 505: .scope = OPTIONS_TABLE_SESSION,
1.123 nicm 506: .default_str = "bg=black,fg=yellow",
507: .flags = OPTIONS_TABLE_IS_STYLE,
1.127 nicm 508: .separator = ",",
509: .text = "Style of the command prompt when in command mode, if "
510: "'mode-keys' is set to 'vi'."
1.1 nicm 511: },
512:
1.43 nicm 513: { .name = "message-style",
1.123 nicm 514: .type = OPTIONS_TABLE_STRING,
1.67 nicm 515: .scope = OPTIONS_TABLE_SESSION,
1.123 nicm 516: .default_str = "bg=yellow,fg=black",
517: .flags = OPTIONS_TABLE_IS_STYLE,
1.127 nicm 518: .separator = ",",
519: .text = "Style of the command prompt."
1.43 nicm 520: },
521:
1.55 nicm 522: { .name = "mouse",
1.1 nicm 523: .type = OPTIONS_TABLE_FLAG,
1.67 nicm 524: .scope = OPTIONS_TABLE_SESSION,
1.127 nicm 525: .default_num = 0,
526: .text = "Whether the mouse is recognised and mouse key bindings are "
527: "executed. "
528: "Applications inside panes can use the mouse even when 'off'."
1.1 nicm 529: },
530:
531: { .name = "prefix",
1.19 nicm 532: .type = OPTIONS_TABLE_KEY,
1.67 nicm 533: .scope = OPTIONS_TABLE_SESSION,
1.19 nicm 534: .default_num = '\002',
1.127 nicm 535: .text = "The prefix key."
1.19 nicm 536: },
537:
538: { .name = "prefix2",
539: .type = OPTIONS_TABLE_KEY,
1.67 nicm 540: .scope = OPTIONS_TABLE_SESSION,
1.19 nicm 541: .default_num = KEYC_NONE,
1.127 nicm 542: .text = "A second prefix key."
1.29 nicm 543: },
544:
545: { .name = "renumber-windows",
546: .type = OPTIONS_TABLE_FLAG,
1.67 nicm 547: .scope = OPTIONS_TABLE_SESSION,
1.127 nicm 548: .default_num = 0,
549: .text = "Whether windows are automatically renumbered rather than "
550: "leaving gaps."
1.1 nicm 551: },
552:
553: { .name = "repeat-time",
554: .type = OPTIONS_TABLE_NUMBER,
1.67 nicm 555: .scope = OPTIONS_TABLE_SESSION,
1.1 nicm 556: .minimum = 0,
557: .maximum = SHRT_MAX,
1.127 nicm 558: .default_num = 500,
559: .unit = "milliseconds",
560: .text = "Time to wait for a key binding to repeat, if it is bound "
561: "with the '-r' flag."
1.1 nicm 562: },
563:
564: { .name = "set-titles",
565: .type = OPTIONS_TABLE_FLAG,
1.67 nicm 566: .scope = OPTIONS_TABLE_SESSION,
1.127 nicm 567: .default_num = 0,
568: .text = "Whether to set the terminal title, if supported."
1.1 nicm 569: },
570:
571: { .name = "set-titles-string",
572: .type = OPTIONS_TABLE_STRING,
1.67 nicm 573: .scope = OPTIONS_TABLE_SESSION,
1.127 nicm 574: .default_str = "#S:#I:#W - \"#T\" #{session_alerts}",
575: .text = "Format of the terminal title to set."
1.1 nicm 576: },
577:
1.91 nicm 578: { .name = "silence-action",
579: .type = OPTIONS_TABLE_CHOICE,
580: .scope = OPTIONS_TABLE_SESSION,
581: .choices = options_table_bell_action_list,
1.127 nicm 582: .default_num = ALERT_OTHER,
583: .text = "Action to take on a silence alert."
1.91 nicm 584: },
585:
1.1 nicm 586: { .name = "status",
1.99 nicm 587: .type = OPTIONS_TABLE_CHOICE,
1.67 nicm 588: .scope = OPTIONS_TABLE_SESSION,
1.99 nicm 589: .choices = options_table_status_list,
1.127 nicm 590: .default_num = 1,
591: .text = "Number of lines in the status line."
1.1 nicm 592: },
593:
594: { .name = "status-bg",
595: .type = OPTIONS_TABLE_COLOUR,
1.67 nicm 596: .scope = OPTIONS_TABLE_SESSION,
1.123 nicm 597: .default_num = 8,
1.127 nicm 598: .text = "Background colour of the status line. This option is "
599: "deprecated, use 'status-style' instead."
1.1 nicm 600: },
601:
602: { .name = "status-fg",
603: .type = OPTIONS_TABLE_COLOUR,
1.67 nicm 604: .scope = OPTIONS_TABLE_SESSION,
1.123 nicm 605: .default_num = 8,
1.127 nicm 606: .text = "Foreground colour of the status line. This option is "
607: "deprecated, use 'status-style' instead."
1.99 nicm 608: },
609:
610: { .name = "status-format",
1.104 nicm 611: .type = OPTIONS_TABLE_STRING,
1.99 nicm 612: .scope = OPTIONS_TABLE_SESSION,
1.104 nicm 613: .flags = OPTIONS_TABLE_IS_ARRAY,
1.99 nicm 614: .default_arr = options_table_status_format_default,
1.127 nicm 615: .text = "Formats for the status lines. "
616: "Each array member is the format for one status line. "
617: "The default status line is made up of several components "
1.144 ! nicm 618: "which may be configured individually with other options such "
1.127 nicm 619: "as 'status-left'."
1.1 nicm 620: },
621:
622: { .name = "status-interval",
623: .type = OPTIONS_TABLE_NUMBER,
1.67 nicm 624: .scope = OPTIONS_TABLE_SESSION,
1.1 nicm 625: .minimum = 0,
626: .maximum = INT_MAX,
1.127 nicm 627: .default_num = 15,
628: .unit = "seconds",
629: .text = "Number of seconds between status line updates."
1.1 nicm 630: },
631:
632: { .name = "status-justify",
633: .type = OPTIONS_TABLE_CHOICE,
1.67 nicm 634: .scope = OPTIONS_TABLE_SESSION,
1.1 nicm 635: .choices = options_table_status_justify_list,
1.127 nicm 636: .default_num = 0,
637: .text = "Position of the window list in the status line."
1.1 nicm 638: },
639:
640: { .name = "status-keys",
641: .type = OPTIONS_TABLE_CHOICE,
1.67 nicm 642: .scope = OPTIONS_TABLE_SESSION,
1.1 nicm 643: .choices = options_table_status_keys_list,
1.127 nicm 644: .default_num = MODEKEY_EMACS,
645: .text = "Key set to use at the command prompt."
1.1 nicm 646: },
647:
648: { .name = "status-left",
649: .type = OPTIONS_TABLE_STRING,
1.67 nicm 650: .scope = OPTIONS_TABLE_SESSION,
1.127 nicm 651: .default_str = "[#{session_name}] ",
652: .text = "Contents of the left side of the status line."
1.1 nicm 653: },
654:
655: { .name = "status-left-length",
656: .type = OPTIONS_TABLE_NUMBER,
1.67 nicm 657: .scope = OPTIONS_TABLE_SESSION,
1.1 nicm 658: .minimum = 0,
659: .maximum = SHRT_MAX,
1.127 nicm 660: .default_num = 10,
661: .text = "Maximum width of the left side of the status line."
1.20 nicm 662: },
663:
1.43 nicm 664: { .name = "status-left-style",
1.123 nicm 665: .type = OPTIONS_TABLE_STRING,
1.67 nicm 666: .scope = OPTIONS_TABLE_SESSION,
1.123 nicm 667: .default_str = "default",
668: .flags = OPTIONS_TABLE_IS_STYLE,
1.127 nicm 669: .separator = ",",
670: .text = "Style of the left side of the status line."
1.43 nicm 671: },
672:
1.20 nicm 673: { .name = "status-position",
674: .type = OPTIONS_TABLE_CHOICE,
1.67 nicm 675: .scope = OPTIONS_TABLE_SESSION,
1.20 nicm 676: .choices = options_table_status_position_list,
1.127 nicm 677: .default_num = 1,
678: .text = "Position of the status line."
1.1 nicm 679: },
680:
681: { .name = "status-right",
682: .type = OPTIONS_TABLE_STRING,
1.67 nicm 683: .scope = OPTIONS_TABLE_SESSION,
1.97 nicm 684: .default_str = "#{?window_bigger,"
1.127 nicm 685: "[#{window_offset_x}#,#{window_offset_y}] ,}"
686: "\"#{=21:pane_title}\" %H:%M %d-%b-%y",
687: .text = "Contents of the right side of the status line."
688:
1.1 nicm 689: },
690:
691: { .name = "status-right-length",
692: .type = OPTIONS_TABLE_NUMBER,
1.67 nicm 693: .scope = OPTIONS_TABLE_SESSION,
1.1 nicm 694: .minimum = 0,
695: .maximum = SHRT_MAX,
1.127 nicm 696: .default_num = 40,
697: .text = "Maximum width of the right side of the status line."
1.1 nicm 698: },
699:
1.43 nicm 700: { .name = "status-right-style",
1.123 nicm 701: .type = OPTIONS_TABLE_STRING,
1.67 nicm 702: .scope = OPTIONS_TABLE_SESSION,
1.123 nicm 703: .default_str = "default",
704: .flags = OPTIONS_TABLE_IS_STYLE,
1.127 nicm 705: .separator = ",",
706: .text = "Style of the right side of the status line."
1.43 nicm 707: },
708:
709: { .name = "status-style",
1.123 nicm 710: .type = OPTIONS_TABLE_STRING,
1.67 nicm 711: .scope = OPTIONS_TABLE_SESSION,
1.123 nicm 712: .default_str = "bg=green,fg=black",
713: .flags = OPTIONS_TABLE_IS_STYLE,
1.127 nicm 714: .separator = ",",
715: .text = "Style of the status line."
1.43 nicm 716: },
717:
1.1 nicm 718: { .name = "update-environment",
1.104 nicm 719: .type = OPTIONS_TABLE_STRING,
1.67 nicm 720: .scope = OPTIONS_TABLE_SESSION,
1.104 nicm 721: .flags = OPTIONS_TABLE_IS_ARRAY,
1.96 nicm 722: .default_str = "DISPLAY KRB5CCNAME SSH_ASKPASS SSH_AUTH_SOCK "
1.127 nicm 723: "SSH_AGENT_PID SSH_CONNECTION WINDOWID XAUTHORITY",
724: .text = "List of environment variables to update in the session "
725: "environment when a client is attached."
1.1 nicm 726: },
727:
728: { .name = "visual-activity",
1.91 nicm 729: .type = OPTIONS_TABLE_CHOICE,
1.67 nicm 730: .scope = OPTIONS_TABLE_SESSION,
1.91 nicm 731: .choices = options_table_visual_bell_list,
1.127 nicm 732: .default_num = VISUAL_OFF,
733: .text = "How activity alerts should be shown: a message ('on'), "
734: "a message and a bell ('both') or nothing ('off')."
1.1 nicm 735: },
736:
737: { .name = "visual-bell",
1.91 nicm 738: .type = OPTIONS_TABLE_CHOICE,
1.67 nicm 739: .scope = OPTIONS_TABLE_SESSION,
1.91 nicm 740: .choices = options_table_visual_bell_list,
1.127 nicm 741: .default_num = VISUAL_OFF,
742: .text = "How bell alerts should be shown: a message ('on'), "
743: "a message and a bell ('both') or nothing ('off')."
1.1 nicm 744: },
745:
746: { .name = "visual-silence",
1.91 nicm 747: .type = OPTIONS_TABLE_CHOICE,
1.67 nicm 748: .scope = OPTIONS_TABLE_SESSION,
1.91 nicm 749: .choices = options_table_visual_bell_list,
1.127 nicm 750: .default_num = VISUAL_OFF,
751: .text = "How silence alerts should be shown: a message ('on'), "
752: "a message and a bell ('both') or nothing ('off')."
1.1 nicm 753: },
754:
1.16 nicm 755: { .name = "word-separators",
756: .type = OPTIONS_TABLE_STRING,
1.67 nicm 757: .scope = OPTIONS_TABLE_SESSION,
1.143 nicm 758: /*
759: * The set of non-alphanumeric printable ASCII characters minus the
760: * underscore.
761: */
762: .default_str = "!\"#$%&'()*+,-./:;<=>?@[\\]^`{|}~",
1.127 nicm 763: .text = "Characters considered to separate words."
1.16 nicm 764: },
765:
1.105 nicm 766: /* Window options. */
1.1 nicm 767: { .name = "aggressive-resize",
768: .type = OPTIONS_TABLE_FLAG,
1.67 nicm 769: .scope = OPTIONS_TABLE_WINDOW,
1.127 nicm 770: .default_num = 0,
771: .text = "When 'window-size' is 'smallest', whether the maximum size "
772: "of a window is the smallest attached session where it is "
773: "the current window ('on') or the smallest session it is "
774: "linked to ('off')."
1.17 nicm 775: },
776:
777: { .name = "allow-rename",
778: .type = OPTIONS_TABLE_FLAG,
1.108 nicm 779: .scope = OPTIONS_TABLE_WINDOW|OPTIONS_TABLE_PANE,
1.127 nicm 780: .default_num = 0,
781: .text = "Whether applications are allowed to use the escape sequence "
782: "to rename windows."
1.1 nicm 783: },
784:
785: { .name = "alternate-screen",
786: .type = OPTIONS_TABLE_FLAG,
1.108 nicm 787: .scope = OPTIONS_TABLE_WINDOW|OPTIONS_TABLE_PANE,
1.127 nicm 788: .default_num = 1,
789: .text = "Whether applications are allowed to use the alternate "
790: "screen."
1.1 nicm 791: },
792:
793: { .name = "automatic-rename",
794: .type = OPTIONS_TABLE_FLAG,
1.67 nicm 795: .scope = OPTIONS_TABLE_WINDOW,
1.127 nicm 796: .default_num = 1,
797: .text = "Whether windows are automatically renamed."
1.41 nicm 798: },
799:
800: { .name = "automatic-rename-format",
801: .type = OPTIONS_TABLE_STRING,
1.67 nicm 802: .scope = OPTIONS_TABLE_WINDOW,
1.50 nicm 803: .default_str = "#{?pane_in_mode,[tmux],#{pane_current_command}}"
1.127 nicm 804: "#{?pane_dead,[dead],}",
805: .text = "Format used to automatically rename windows."
1.1 nicm 806: },
807:
808: { .name = "clock-mode-colour",
809: .type = OPTIONS_TABLE_COLOUR,
1.67 nicm 810: .scope = OPTIONS_TABLE_WINDOW,
1.127 nicm 811: .default_num = 4,
812: .text = "Colour of the clock in clock mode."
1.1 nicm 813: },
814:
815: { .name = "clock-mode-style",
816: .type = OPTIONS_TABLE_CHOICE,
1.67 nicm 817: .scope = OPTIONS_TABLE_WINDOW,
1.1 nicm 818: .choices = options_table_clock_mode_style_list,
1.127 nicm 819: .default_num = 1,
820: .text = "Time format of the clock in clock mode."
1.124 nicm 821: },
822:
823: { .name = "copy-mode-match-style",
824: .type = OPTIONS_TABLE_STRING,
825: .scope = OPTIONS_TABLE_WINDOW,
826: .default_str = "bg=cyan,fg=black",
827: .flags = OPTIONS_TABLE_IS_STYLE,
1.127 nicm 828: .separator = ",",
829: .text = "Style of search matches in copy mode."
1.124 nicm 830: },
831:
832: { .name = "copy-mode-current-match-style",
833: .type = OPTIONS_TABLE_STRING,
834: .scope = OPTIONS_TABLE_WINDOW,
835: .default_str = "bg=magenta,fg=black",
836: .flags = OPTIONS_TABLE_IS_STYLE,
1.127 nicm 837: .separator = ",",
838: .text = "Style of the current search match in copy mode."
1.128 nicm 839: },
840:
841: { .name = "copy-mode-mark-style",
842: .type = OPTIONS_TABLE_STRING,
843: .scope = OPTIONS_TABLE_WINDOW,
844: .default_str = "bg=red,fg=black",
845: .flags = OPTIONS_TABLE_IS_STYLE,
846: .separator = ",",
847: .text = "Style of the marked line in copy mode."
1.1 nicm 848: },
849:
850: { .name = "main-pane-height",
1.120 nicm 851: .type = OPTIONS_TABLE_STRING,
1.67 nicm 852: .scope = OPTIONS_TABLE_WINDOW,
1.127 nicm 853: .default_str = "24",
854: .text = "Height of the main pane in the 'main-horizontal' layout. "
855: "This may be a percentage, for example '10%'."
1.1 nicm 856: },
857:
858: { .name = "main-pane-width",
1.120 nicm 859: .type = OPTIONS_TABLE_STRING,
1.67 nicm 860: .scope = OPTIONS_TABLE_WINDOW,
1.127 nicm 861: .default_str = "80",
862: .text = "Width of the main pane in the 'main-vertical' layout. "
863: "This may be a percentage, for example '10%'."
1.1 nicm 864: },
865:
866: { .name = "mode-keys",
867: .type = OPTIONS_TABLE_CHOICE,
1.67 nicm 868: .scope = OPTIONS_TABLE_WINDOW,
1.1 nicm 869: .choices = options_table_mode_keys_list,
1.127 nicm 870: .default_num = MODEKEY_EMACS,
871: .text = "Key set used in copy mode."
1.1 nicm 872: },
873:
1.43 nicm 874: { .name = "mode-style",
1.123 nicm 875: .type = OPTIONS_TABLE_STRING,
1.67 nicm 876: .scope = OPTIONS_TABLE_WINDOW,
1.123 nicm 877: .default_str = "bg=yellow,fg=black",
878: .flags = OPTIONS_TABLE_IS_STYLE,
1.127 nicm 879: .separator = ",",
880: .text = "Style of indicators and highlighting in modes."
1.43 nicm 881: },
882:
1.1 nicm 883: { .name = "monitor-activity",
884: .type = OPTIONS_TABLE_FLAG,
1.67 nicm 885: .scope = OPTIONS_TABLE_WINDOW,
1.127 nicm 886: .default_num = 0,
887: .text = "Whether an alert is triggered by activity."
1.93 nicm 888: },
889:
890: { .name = "monitor-bell",
891: .type = OPTIONS_TABLE_FLAG,
892: .scope = OPTIONS_TABLE_WINDOW,
1.127 nicm 893: .default_num = 1,
894: .text = "Whether an alert is triggered by a bell."
1.1 nicm 895: },
896:
897: { .name = "monitor-silence",
898: .type = OPTIONS_TABLE_NUMBER,
1.67 nicm 899: .scope = OPTIONS_TABLE_WINDOW,
1.1 nicm 900: .minimum = 0,
901: .maximum = INT_MAX,
1.127 nicm 902: .default_num = 0,
903: .text = "Time after which an alert is triggered by silence. "
904: "Zero means no alert."
905:
1.1 nicm 906: },
907:
908: { .name = "other-pane-height",
1.120 nicm 909: .type = OPTIONS_TABLE_STRING,
1.67 nicm 910: .scope = OPTIONS_TABLE_WINDOW,
1.127 nicm 911: .default_str = "0",
912: .text = "Height of the other panes in the 'main-horizontal' layout. "
913: "This may be a percentage, for example '10%'."
1.1 nicm 914: },
915:
916: { .name = "other-pane-width",
1.120 nicm 917: .type = OPTIONS_TABLE_STRING,
1.67 nicm 918: .scope = OPTIONS_TABLE_WINDOW,
1.127 nicm 919: .default_str = "0",
920: .text = "Height of the other panes in the 'main-vertical' layout. "
921: "This may be a percentage, for example '10%'."
1.13 nicm 922: },
923:
1.53 nicm 924: { .name = "pane-active-border-style",
1.123 nicm 925: .type = OPTIONS_TABLE_STRING,
1.67 nicm 926: .scope = OPTIONS_TABLE_WINDOW,
1.123 nicm 927: .default_str = "#{?pane_in_mode,fg=yellow,#{?synchronize-panes,fg=red,fg=green}}",
928: .flags = OPTIONS_TABLE_IS_STYLE,
1.127 nicm 929: .separator = ",",
930: .text = "Style of the active pane border."
1.53 nicm 931: },
932:
1.13 nicm 933: { .name = "pane-base-index",
934: .type = OPTIONS_TABLE_NUMBER,
1.67 nicm 935: .scope = OPTIONS_TABLE_WINDOW,
1.13 nicm 936: .minimum = 0,
937: .maximum = USHRT_MAX,
1.127 nicm 938: .default_num = 0,
939: .text = "Index of the first pane in each window."
1.53 nicm 940: },
941:
1.72 nicm 942: { .name = "pane-border-format",
943: .type = OPTIONS_TABLE_STRING,
944: .scope = OPTIONS_TABLE_WINDOW,
1.73 nicm 945: .default_str = "#{?pane_active,#[reverse],}#{pane_index}#[default] "
1.127 nicm 946: "\"#{pane_title}\"",
947: .text = "Format of text in the pane status lines."
1.129 nicm 948: },
949:
950: { .name = "pane-border-lines",
951: .type = OPTIONS_TABLE_CHOICE,
952: .scope = OPTIONS_TABLE_WINDOW,
953: .choices = options_table_pane_lines_list,
954: .default_num = PANE_LINES_SINGLE,
1.144 ! nicm 955: .text = "Type of characters used to draw pane border lines. Some of "
! 956: "these are only supported on terminals with UTF-8 support."
1.72 nicm 957: },
958:
959: { .name = "pane-border-status",
960: .type = OPTIONS_TABLE_CHOICE,
961: .scope = OPTIONS_TABLE_WINDOW,
962: .choices = options_table_pane_status_list,
1.127 nicm 963: .default_num = PANE_STATUS_OFF,
964: .text = "Position of the pane status lines."
1.53 nicm 965: },
966:
967: { .name = "pane-border-style",
1.123 nicm 968: .type = OPTIONS_TABLE_STRING,
1.67 nicm 969: .scope = OPTIONS_TABLE_WINDOW,
1.123 nicm 970: .default_str = "default",
971: .flags = OPTIONS_TABLE_IS_STYLE,
1.127 nicm 972: .separator = ",",
973: .text = "Style of the pane status lines."
1.22 nicm 974: },
975:
1.1 nicm 976: { .name = "remain-on-exit",
1.137 nicm 977: .type = OPTIONS_TABLE_CHOICE,
1.107 nicm 978: .scope = OPTIONS_TABLE_WINDOW|OPTIONS_TABLE_PANE,
1.137 nicm 979: .choices = options_table_remain_on_exit_list,
1.127 nicm 980: .default_num = 0,
981: .text = "Whether panes should remain ('on') or be automatically "
1.137 nicm 982: "killed ('off' or 'failed') when the program inside exits."
1.1 nicm 983: },
984:
985: { .name = "synchronize-panes",
986: .type = OPTIONS_TABLE_FLAG,
1.136 nicm 987: .scope = OPTIONS_TABLE_WINDOW|OPTIONS_TABLE_PANE,
1.127 nicm 988: .default_num = 0,
989: .text = "Whether typing should be sent to all panes simultaneously."
1.54 nicm 990: },
991:
992: { .name = "window-active-style",
1.123 nicm 993: .type = OPTIONS_TABLE_STRING,
1.107 nicm 994: .scope = OPTIONS_TABLE_WINDOW|OPTIONS_TABLE_PANE,
1.123 nicm 995: .default_str = "default",
996: .flags = OPTIONS_TABLE_IS_STYLE,
1.127 nicm 997: .separator = ",",
998: .text = "Default style of the active pane."
1.97 nicm 999: },
1000:
1001: { .name = "window-size",
1002: .type = OPTIONS_TABLE_CHOICE,
1003: .scope = OPTIONS_TABLE_WINDOW,
1004: .choices = options_table_window_size_list,
1.127 nicm 1005: .default_num = WINDOW_SIZE_LATEST,
1006: .text = "How window size is calculated. "
1007: "'latest' uses the size of the most recently used client, "
1008: "'largest' the largest client, 'smallest' the smallest "
1009: "client and 'manual' a size set by the 'resize-window' "
1010: "command."
1.54 nicm 1011: },
1012:
1013: { .name = "window-style",
1.123 nicm 1014: .type = OPTIONS_TABLE_STRING,
1.107 nicm 1015: .scope = OPTIONS_TABLE_WINDOW|OPTIONS_TABLE_PANE,
1.123 nicm 1016: .default_str = "default",
1017: .flags = OPTIONS_TABLE_IS_STYLE,
1.127 nicm 1018: .separator = ",",
1019: .text = "Default style of panes that are not the active pane."
1.1 nicm 1020: },
1021:
1.43 nicm 1022: { .name = "window-status-activity-style",
1.123 nicm 1023: .type = OPTIONS_TABLE_STRING,
1.67 nicm 1024: .scope = OPTIONS_TABLE_WINDOW,
1.123 nicm 1025: .default_str = "reverse",
1026: .flags = OPTIONS_TABLE_IS_STYLE,
1.127 nicm 1027: .separator = ",",
1028: .text = "Style of windows in the status line with an activity alert."
1.43 nicm 1029: },
1030:
1031: { .name = "window-status-bell-style",
1.123 nicm 1032: .type = OPTIONS_TABLE_STRING,
1.67 nicm 1033: .scope = OPTIONS_TABLE_WINDOW,
1.123 nicm 1034: .default_str = "reverse",
1035: .flags = OPTIONS_TABLE_IS_STYLE,
1.127 nicm 1036: .separator = ",",
1037: .text = "Style of windows in the status line with a bell alert."
1.43 nicm 1038: },
1039:
1.1 nicm 1040: { .name = "window-status-current-format",
1041: .type = OPTIONS_TABLE_STRING,
1.67 nicm 1042: .scope = OPTIONS_TABLE_WINDOW,
1.138 nicm 1043: .default_str = "#I:#W#{?window_flags,#{window_flags}, }",
1.127 nicm 1044: .text = "Format of the current window in the status line."
1.30 nicm 1045: },
1046:
1.43 nicm 1047: { .name = "window-status-current-style",
1.123 nicm 1048: .type = OPTIONS_TABLE_STRING,
1.67 nicm 1049: .scope = OPTIONS_TABLE_WINDOW,
1.123 nicm 1050: .default_str = "default",
1051: .flags = OPTIONS_TABLE_IS_STYLE,
1.127 nicm 1052: .separator = ",",
1053: .text = "Style of the current window in the status line."
1.43 nicm 1054: },
1055:
1056: { .name = "window-status-format",
1057: .type = OPTIONS_TABLE_STRING,
1.67 nicm 1058: .scope = OPTIONS_TABLE_WINDOW,
1.138 nicm 1059: .default_str = "#I:#W#{?window_flags,#{window_flags}, }",
1.127 nicm 1060: .text = "Format of windows in the status line, except the current "
1061: "window."
1.1 nicm 1062: },
1063:
1.43 nicm 1064: { .name = "window-status-last-style",
1.123 nicm 1065: .type = OPTIONS_TABLE_STRING,
1.67 nicm 1066: .scope = OPTIONS_TABLE_WINDOW,
1.123 nicm 1067: .default_str = "default",
1068: .flags = OPTIONS_TABLE_IS_STYLE,
1.127 nicm 1069: .separator = ",",
1070: .text = "Style of the last window in the status line."
1.1 nicm 1071: },
1072:
1.43 nicm 1073: { .name = "window-status-separator",
1.1 nicm 1074: .type = OPTIONS_TABLE_STRING,
1.67 nicm 1075: .scope = OPTIONS_TABLE_WINDOW,
1.127 nicm 1076: .default_str = " ",
1077: .text = "Separator between windows in the status line."
1.28 nicm 1078: },
1079:
1.43 nicm 1080: { .name = "window-status-style",
1.123 nicm 1081: .type = OPTIONS_TABLE_STRING,
1.67 nicm 1082: .scope = OPTIONS_TABLE_WINDOW,
1.123 nicm 1083: .default_str = "default",
1084: .flags = OPTIONS_TABLE_IS_STYLE,
1.127 nicm 1085: .separator = ",",
1086: .text = "Style of windows in the status line, except the current and "
1087: "last windows."
1.24 nicm 1088: },
1089:
1090: { .name = "wrap-search",
1091: .type = OPTIONS_TABLE_FLAG,
1.67 nicm 1092: .scope = OPTIONS_TABLE_WINDOW,
1.127 nicm 1093: .default_num = 1,
1094: .text = "Whether searching in copy mode should wrap at the top or "
1095: "bottom."
1.1 nicm 1096: },
1097:
1.130 nicm 1098: { .name = "xterm-keys", /* no longer used */
1.1 nicm 1099: .type = OPTIONS_TABLE_FLAG,
1.67 nicm 1100: .scope = OPTIONS_TABLE_WINDOW,
1.127 nicm 1101: .default_num = 1,
1.130 nicm 1102: .text = "Whether xterm-style function key sequences should be sent. "
1103: "This option is no longer used."
1.1 nicm 1104: },
1.105 nicm 1105:
1106: /* Hook options. */
1107: OPTIONS_TABLE_HOOK("after-bind-key", ""),
1108: OPTIONS_TABLE_HOOK("after-capture-pane", ""),
1109: OPTIONS_TABLE_HOOK("after-copy-mode", ""),
1110: OPTIONS_TABLE_HOOK("after-display-message", ""),
1111: OPTIONS_TABLE_HOOK("after-display-panes", ""),
1.115 nicm 1112: OPTIONS_TABLE_HOOK("after-kill-pane", ""),
1.105 nicm 1113: OPTIONS_TABLE_HOOK("after-list-buffers", ""),
1114: OPTIONS_TABLE_HOOK("after-list-clients", ""),
1115: OPTIONS_TABLE_HOOK("after-list-keys", ""),
1116: OPTIONS_TABLE_HOOK("after-list-panes", ""),
1117: OPTIONS_TABLE_HOOK("after-list-sessions", ""),
1118: OPTIONS_TABLE_HOOK("after-list-windows", ""),
1119: OPTIONS_TABLE_HOOK("after-load-buffer", ""),
1120: OPTIONS_TABLE_HOOK("after-lock-server", ""),
1121: OPTIONS_TABLE_HOOK("after-new-session", ""),
1122: OPTIONS_TABLE_HOOK("after-new-window", ""),
1123: OPTIONS_TABLE_HOOK("after-paste-buffer", ""),
1124: OPTIONS_TABLE_HOOK("after-pipe-pane", ""),
1125: OPTIONS_TABLE_HOOK("after-queue", ""),
1126: OPTIONS_TABLE_HOOK("after-refresh-client", ""),
1127: OPTIONS_TABLE_HOOK("after-rename-session", ""),
1128: OPTIONS_TABLE_HOOK("after-rename-window", ""),
1129: OPTIONS_TABLE_HOOK("after-resize-pane", ""),
1130: OPTIONS_TABLE_HOOK("after-resize-window", ""),
1131: OPTIONS_TABLE_HOOK("after-save-buffer", ""),
1132: OPTIONS_TABLE_HOOK("after-select-layout", ""),
1133: OPTIONS_TABLE_HOOK("after-select-pane", ""),
1134: OPTIONS_TABLE_HOOK("after-select-window", ""),
1135: OPTIONS_TABLE_HOOK("after-send-keys", ""),
1136: OPTIONS_TABLE_HOOK("after-set-buffer", ""),
1137: OPTIONS_TABLE_HOOK("after-set-environment", ""),
1138: OPTIONS_TABLE_HOOK("after-set-hook", ""),
1139: OPTIONS_TABLE_HOOK("after-set-option", ""),
1140: OPTIONS_TABLE_HOOK("after-show-environment", ""),
1141: OPTIONS_TABLE_HOOK("after-show-messages", ""),
1142: OPTIONS_TABLE_HOOK("after-show-options", ""),
1143: OPTIONS_TABLE_HOOK("after-split-window", ""),
1144: OPTIONS_TABLE_HOOK("after-unbind-key", ""),
1145: OPTIONS_TABLE_HOOK("alert-activity", ""),
1146: OPTIONS_TABLE_HOOK("alert-bell", ""),
1147: OPTIONS_TABLE_HOOK("alert-silence", ""),
1148: OPTIONS_TABLE_HOOK("client-attached", ""),
1149: OPTIONS_TABLE_HOOK("client-detached", ""),
1150: OPTIONS_TABLE_HOOK("client-resized", ""),
1151: OPTIONS_TABLE_HOOK("client-session-changed", ""),
1.116 nicm 1152: OPTIONS_TABLE_PANE_HOOK("pane-died", ""),
1153: OPTIONS_TABLE_PANE_HOOK("pane-exited", ""),
1154: OPTIONS_TABLE_PANE_HOOK("pane-focus-in", ""),
1155: OPTIONS_TABLE_PANE_HOOK("pane-focus-out", ""),
1156: OPTIONS_TABLE_PANE_HOOK("pane-mode-changed", ""),
1157: OPTIONS_TABLE_PANE_HOOK("pane-set-clipboard", ""),
1.133 nicm 1158: OPTIONS_TABLE_PANE_HOOK("pane-title-changed", ""),
1.105 nicm 1159: OPTIONS_TABLE_HOOK("session-closed", ""),
1160: OPTIONS_TABLE_HOOK("session-created", ""),
1161: OPTIONS_TABLE_HOOK("session-renamed", ""),
1162: OPTIONS_TABLE_HOOK("session-window-changed", ""),
1.116 nicm 1163: OPTIONS_TABLE_WINDOW_HOOK("window-layout-changed", ""),
1164: OPTIONS_TABLE_WINDOW_HOOK("window-linked", ""),
1165: OPTIONS_TABLE_WINDOW_HOOK("window-pane-changed", ""),
1166: OPTIONS_TABLE_WINDOW_HOOK("window-renamed", ""),
1167: OPTIONS_TABLE_WINDOW_HOOK("window-unlinked", ""),
1.1 nicm 1168:
1169: { .name = NULL }
1170: };