xref: /openbsd-src/usr.bin/tmux/options-table.c (revision 03adc85b7600a1f8f04886b8321c1c1c0c4933d4)
1 /* $OpenBSD: options-table.c,v 1.82 2017/01/16 14:52:25 nicm Exp $ */
2 
3 /*
4  * Copyright (c) 2011 Nicholas Marriott <nicholas.marriott@gmail.com>
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
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.
33  */
34 
35 /* Choice option type lists. */
36 static const char *options_table_mode_keys_list[] = {
37 	"emacs", "vi", NULL
38 };
39 static const char *options_table_clock_mode_style_list[] = {
40 	"12", "24", NULL
41 };
42 static const char *options_table_status_keys_list[] = {
43 	"emacs", "vi", NULL
44 };
45 static const char *options_table_status_justify_list[] = {
46 	"left", "centre", "right", NULL
47 };
48 static const char *options_table_status_position_list[] = {
49 	"top", "bottom", NULL
50 };
51 static const char *options_table_bell_action_list[] = {
52 	"none", "any", "current", "other", NULL
53 };
54 static const char *options_table_pane_status_list[] = {
55 	"off", "top", "bottom", NULL
56 };
57 
58 /* Top-level options. */
59 const struct options_table_entry options_table[] = {
60 	{ .name = "buffer-limit",
61 	  .type = OPTIONS_TABLE_NUMBER,
62 	  .scope = OPTIONS_TABLE_SERVER,
63 	  .minimum = 1,
64 	  .maximum = INT_MAX,
65 	  .default_num = 20
66 	},
67 
68 	{ .name = "default-terminal",
69 	  .type = OPTIONS_TABLE_STRING,
70 	  .scope = OPTIONS_TABLE_SERVER,
71 	  .default_str = "screen"
72 	},
73 
74 	{ .name = "escape-time",
75 	  .type = OPTIONS_TABLE_NUMBER,
76 	  .scope = OPTIONS_TABLE_SERVER,
77 	  .minimum = 0,
78 	  .maximum = INT_MAX,
79 	  .default_num = 500
80 	},
81 
82 	{ .name = "exit-unattached",
83 	  .type = OPTIONS_TABLE_FLAG,
84 	  .scope = OPTIONS_TABLE_SERVER,
85 	  .default_num = 0
86 	},
87 
88 	{ .name = "focus-events",
89 	  .type = OPTIONS_TABLE_FLAG,
90 	  .scope = OPTIONS_TABLE_SERVER,
91 	  .default_num = 0
92 	},
93 
94 	{ .name = "history-file",
95 	  .type = OPTIONS_TABLE_STRING,
96 	  .scope = OPTIONS_TABLE_SERVER,
97 	  .default_str = ""
98 	},
99 
100 	{ .name = "message-limit",
101 	  .type = OPTIONS_TABLE_NUMBER,
102 	  .scope = OPTIONS_TABLE_SERVER,
103 	  .minimum = 0,
104 	  .maximum = INT_MAX,
105 	  .default_num = 100
106 	},
107 
108 	{ .name = "set-clipboard",
109 	  .type = OPTIONS_TABLE_FLAG,
110 	  .scope = OPTIONS_TABLE_SERVER,
111 	  .default_num = 1
112 	},
113 
114 	{ .name = "terminal-overrides",
115 	  .type = OPTIONS_TABLE_STRING,
116 	  .scope = OPTIONS_TABLE_SERVER,
117 	  .default_str = "xterm*:XT:Ms=\\E]52;%p1%s;%p2%s\\007"
118 	                 ":Cs=\\E]12;%p1%s\\007:Cr=\\E]112\\007"
119 			 ":Ss=\\E[%p1%d q:Se=\\E[2 q,screen*:XT"
120 	},
121 
122 	{ .name = "assume-paste-time",
123 	  .type = OPTIONS_TABLE_NUMBER,
124 	  .scope = OPTIONS_TABLE_SESSION,
125 	  .minimum = 0,
126 	  .maximum = INT_MAX,
127 	  .default_num = 1,
128 	},
129 
130 	{ .name = "base-index",
131 	  .type = OPTIONS_TABLE_NUMBER,
132 	  .scope = OPTIONS_TABLE_SESSION,
133 	  .minimum = 0,
134 	  .maximum = INT_MAX,
135 	  .default_num = 0
136 	},
137 
138 	{ .name = "bell-action",
139 	  .type = OPTIONS_TABLE_CHOICE,
140 	  .scope = OPTIONS_TABLE_SESSION,
141 	  .choices = options_table_bell_action_list,
142 	  .default_num = BELL_ANY
143 	},
144 
145 	{ .name = "bell-on-alert",
146 	  .type = OPTIONS_TABLE_FLAG,
147 	  .scope = OPTIONS_TABLE_SESSION,
148 	  .default_num = 0
149 	},
150 
151 	{ .name = "default-command",
152 	  .type = OPTIONS_TABLE_STRING,
153 	  .scope = OPTIONS_TABLE_SESSION,
154 	  .default_str = ""
155 	},
156 
157 	{ .name = "default-shell",
158 	  .type = OPTIONS_TABLE_STRING,
159 	  .scope = OPTIONS_TABLE_SESSION,
160 	  .default_str = _PATH_BSHELL
161 	},
162 
163 	{ .name = "destroy-unattached",
164 	  .type = OPTIONS_TABLE_FLAG,
165 	  .scope = OPTIONS_TABLE_SESSION,
166 	  .default_num = 0
167 	},
168 
169 	{ .name = "detach-on-destroy",
170 	  .type = OPTIONS_TABLE_FLAG,
171 	  .scope = OPTIONS_TABLE_SESSION,
172 	  .default_num = 1
173 	},
174 
175 	{ .name = "display-panes-active-colour",
176 	  .type = OPTIONS_TABLE_COLOUR,
177 	  .scope = OPTIONS_TABLE_SESSION,
178 	  .default_num = 1
179 	},
180 
181 	{ .name = "display-panes-colour",
182 	  .type = OPTIONS_TABLE_COLOUR,
183 	  .scope = OPTIONS_TABLE_SESSION,
184 	  .default_num = 4
185 	},
186 
187 	{ .name = "display-panes-time",
188 	  .type = OPTIONS_TABLE_NUMBER,
189 	  .scope = OPTIONS_TABLE_SESSION,
190 	  .minimum = 1,
191 	  .maximum = INT_MAX,
192 	  .default_num = 1000
193 	},
194 
195 	{ .name = "display-time",
196 	  .type = OPTIONS_TABLE_NUMBER,
197 	  .scope = OPTIONS_TABLE_SESSION,
198 	  .minimum = 0,
199 	  .maximum = INT_MAX,
200 	  .default_num = 750
201 	},
202 
203 	{ .name = "history-limit",
204 	  .type = OPTIONS_TABLE_NUMBER,
205 	  .scope = OPTIONS_TABLE_SESSION,
206 	  .minimum = 0,
207 	  .maximum = INT_MAX,
208 	  .default_num = 2000
209 	},
210 
211 	{ .name = "key-table",
212 	  .type = OPTIONS_TABLE_STRING,
213 	  .scope = OPTIONS_TABLE_SESSION,
214 	  .default_str = "root"
215 	},
216 
217 	{ .name = "lock-after-time",
218 	  .type = OPTIONS_TABLE_NUMBER,
219 	  .scope = OPTIONS_TABLE_SESSION,
220 	  .minimum = 0,
221 	  .maximum = INT_MAX,
222 	  .default_num = 0
223 	},
224 
225 	{ .name = "lock-command",
226 	  .type = OPTIONS_TABLE_STRING,
227 	  .scope = OPTIONS_TABLE_SESSION,
228 	  .default_str = "lock -np"
229 	},
230 
231 	{ .name = "message-attr",
232 	  .type = OPTIONS_TABLE_ATTRIBUTES,
233 	  .scope = OPTIONS_TABLE_SESSION,
234 	  .default_num = 0,
235 	  .style = "message-style"
236 	},
237 
238 	{ .name = "message-bg",
239 	  .type = OPTIONS_TABLE_COLOUR,
240 	  .scope = OPTIONS_TABLE_SESSION,
241 	  .default_num = 3,
242 	  .style = "message-style"
243 	},
244 
245 	{ .name = "message-command-attr",
246 	  .type = OPTIONS_TABLE_ATTRIBUTES,
247 	  .scope = OPTIONS_TABLE_SESSION,
248 	  .default_num = 0,
249 	  .style = "message-command-style"
250 	},
251 
252 	{ .name = "message-command-bg",
253 	  .type = OPTIONS_TABLE_COLOUR,
254 	  .scope = OPTIONS_TABLE_SESSION,
255 	  .default_num = 0,
256 	  .style = "message-command-style"
257 	},
258 
259 	{ .name = "message-command-fg",
260 	  .type = OPTIONS_TABLE_COLOUR,
261 	  .scope = OPTIONS_TABLE_SESSION,
262 	  .default_num = 3,
263 	  .style = "message-command-style"
264 	},
265 
266 	{ .name = "message-command-style",
267 	  .type = OPTIONS_TABLE_STYLE,
268 	  .scope = OPTIONS_TABLE_SESSION,
269 	  .default_str = "bg=black,fg=yellow"
270 	},
271 
272 	{ .name = "message-fg",
273 	  .type = OPTIONS_TABLE_COLOUR,
274 	  .scope = OPTIONS_TABLE_SESSION,
275 	  .default_num = 0,
276 	  .style = "message-style"
277 	},
278 
279 	{ .name = "message-style",
280 	  .type = OPTIONS_TABLE_STYLE,
281 	  .scope = OPTIONS_TABLE_SESSION,
282 	  .default_str = "bg=yellow,fg=black"
283 	},
284 
285 	{ .name = "mouse",
286 	  .type = OPTIONS_TABLE_FLAG,
287 	  .scope = OPTIONS_TABLE_SESSION,
288 	  .default_num = 0
289 	},
290 
291 	{ .name = "prefix",
292 	  .type = OPTIONS_TABLE_KEY,
293 	  .scope = OPTIONS_TABLE_SESSION,
294 	  .default_num = '\002',
295 	},
296 
297 	{ .name = "prefix2",
298 	  .type = OPTIONS_TABLE_KEY,
299 	  .scope = OPTIONS_TABLE_SESSION,
300 	  .default_num = KEYC_NONE,
301 	},
302 
303 	{ .name = "renumber-windows",
304 	  .type = OPTIONS_TABLE_FLAG,
305 	  .scope = OPTIONS_TABLE_SESSION,
306 	  .default_num = 0
307 	},
308 
309 	{ .name = "repeat-time",
310 	  .type = OPTIONS_TABLE_NUMBER,
311 	  .scope = OPTIONS_TABLE_SESSION,
312 	  .minimum = 0,
313 	  .maximum = SHRT_MAX,
314 	  .default_num = 500
315 	},
316 
317 	{ .name = "set-titles",
318 	  .type = OPTIONS_TABLE_FLAG,
319 	  .scope = OPTIONS_TABLE_SESSION,
320 	  .default_num = 0
321 	},
322 
323 	{ .name = "set-titles-string",
324 	  .type = OPTIONS_TABLE_STRING,
325 	  .scope = OPTIONS_TABLE_SESSION,
326 	  .default_str = "#S:#I:#W - \"#T\" #{session_alerts}"
327 	},
328 
329 	{ .name = "status",
330 	  .type = OPTIONS_TABLE_FLAG,
331 	  .scope = OPTIONS_TABLE_SESSION,
332 	  .default_num = 1
333 	},
334 
335 	{ .name = "status-attr",
336 	  .type = OPTIONS_TABLE_ATTRIBUTES,
337 	  .scope = OPTIONS_TABLE_SESSION,
338 	  .default_num = 0,
339 	  .style = "status-style"
340 	},
341 
342 	{ .name = "status-bg",
343 	  .type = OPTIONS_TABLE_COLOUR,
344 	  .scope = OPTIONS_TABLE_SESSION,
345 	  .default_num = 2,
346 	  .style = "status-style"
347 	},
348 
349 	{ .name = "status-fg",
350 	  .type = OPTIONS_TABLE_COLOUR,
351 	  .scope = OPTIONS_TABLE_SESSION,
352 	  .default_num = 0,
353 	  .style = "status-style"
354 	},
355 
356 	{ .name = "status-interval",
357 	  .type = OPTIONS_TABLE_NUMBER,
358 	  .scope = OPTIONS_TABLE_SESSION,
359 	  .minimum = 0,
360 	  .maximum = INT_MAX,
361 	  .default_num = 15
362 	},
363 
364 	{ .name = "status-justify",
365 	  .type = OPTIONS_TABLE_CHOICE,
366 	  .scope = OPTIONS_TABLE_SESSION,
367 	  .choices = options_table_status_justify_list,
368 	  .default_num = 0
369 	},
370 
371 	{ .name = "status-keys",
372 	  .type = OPTIONS_TABLE_CHOICE,
373 	  .scope = OPTIONS_TABLE_SESSION,
374 	  .choices = options_table_status_keys_list,
375 	  .default_num = MODEKEY_EMACS
376 	},
377 
378 	{ .name = "status-left",
379 	  .type = OPTIONS_TABLE_STRING,
380 	  .scope = OPTIONS_TABLE_SESSION,
381 	  .default_str = "[#S] "
382 	},
383 
384 	{ .name = "status-left-attr",
385 	  .type = OPTIONS_TABLE_ATTRIBUTES,
386 	  .scope = OPTIONS_TABLE_SESSION,
387 	  .default_num = 0,
388 	  .style = "status-left-style"
389 	},
390 
391 	{ .name = "status-left-bg",
392 	  .type = OPTIONS_TABLE_COLOUR,
393 	  .scope = OPTIONS_TABLE_SESSION,
394 	  .default_num = 8,
395 	  .style = "status-left-style"
396 	},
397 
398 	{ .name = "status-left-fg",
399 	  .type = OPTIONS_TABLE_COLOUR,
400 	  .scope = OPTIONS_TABLE_SESSION,
401 	  .default_num = 8,
402 	  .style = "status-left-style"
403 	},
404 
405 	{ .name = "status-left-length",
406 	  .type = OPTIONS_TABLE_NUMBER,
407 	  .scope = OPTIONS_TABLE_SESSION,
408 	  .minimum = 0,
409 	  .maximum = SHRT_MAX,
410 	  .default_num = 10
411 	},
412 
413 	{ .name = "status-left-style",
414 	  .type = OPTIONS_TABLE_STYLE,
415 	  .scope = OPTIONS_TABLE_SESSION,
416 	  .default_str = "default"
417 	},
418 
419 	{ .name = "status-position",
420 	  .type = OPTIONS_TABLE_CHOICE,
421 	  .scope = OPTIONS_TABLE_SESSION,
422 	  .choices = options_table_status_position_list,
423 	  .default_num = 1
424 	},
425 
426 	{ .name = "status-right",
427 	  .type = OPTIONS_TABLE_STRING,
428 	  .scope = OPTIONS_TABLE_SESSION,
429 	  .default_str = " \"#{=21:pane_title}\" %H:%M %d-%b-%y"
430 	},
431 
432 	{ .name = "status-right-attr",
433 	  .type = OPTIONS_TABLE_ATTRIBUTES,
434 	  .scope = OPTIONS_TABLE_SESSION,
435 	  .default_num = 0,
436 	  .style = "status-right-style"
437 	},
438 
439 	{ .name = "status-right-bg",
440 	  .type = OPTIONS_TABLE_COLOUR,
441 	  .scope = OPTIONS_TABLE_SESSION,
442 	  .default_num = 8,
443 	  .style = "status-right-style"
444 	},
445 
446 	{ .name = "status-right-fg",
447 	  .type = OPTIONS_TABLE_COLOUR,
448 	  .scope = OPTIONS_TABLE_SESSION,
449 	  .default_num = 8,
450 	  .style = "status-right-style"
451 	},
452 
453 	{ .name = "status-right-length",
454 	  .type = OPTIONS_TABLE_NUMBER,
455 	  .scope = OPTIONS_TABLE_SESSION,
456 	  .minimum = 0,
457 	  .maximum = SHRT_MAX,
458 	  .default_num = 40
459 	},
460 
461 	{ .name = "status-right-style",
462 	  .type = OPTIONS_TABLE_STYLE,
463 	  .scope = OPTIONS_TABLE_SESSION,
464 	  .default_str = "default"
465 	},
466 
467 	{ .name = "status-style",
468 	  .type = OPTIONS_TABLE_STYLE,
469 	  .scope = OPTIONS_TABLE_SESSION,
470 	  .default_str = "bg=green,fg=black"
471 	},
472 
473 	{ .name = "update-environment",
474 	  .type = OPTIONS_TABLE_STRING,
475 	  .scope = OPTIONS_TABLE_SESSION,
476 	  .default_str = "DISPLAY SSH_ASKPASS SSH_AUTH_SOCK SSH_AGENT_PID "
477 	                 "SSH_CONNECTION WINDOWID XAUTHORITY"
478 
479 	},
480 
481 	{ .name = "visual-activity",
482 	  .type = OPTIONS_TABLE_FLAG,
483 	  .scope = OPTIONS_TABLE_SESSION,
484 	  .default_num = 0
485 	},
486 
487 	{ .name = "visual-bell",
488 	  .type = OPTIONS_TABLE_FLAG,
489 	  .scope = OPTIONS_TABLE_SESSION,
490 	  .default_num = 0
491 	},
492 
493 	{ .name = "visual-silence",
494 	  .type = OPTIONS_TABLE_FLAG,
495 	  .scope = OPTIONS_TABLE_SESSION,
496 	  .default_num = 0
497 	},
498 
499 	{ .name = "word-separators",
500 	  .type = OPTIONS_TABLE_STRING,
501 	  .scope = OPTIONS_TABLE_SESSION,
502 	  .default_str = " -_@"
503 	},
504 
505 	{ .name = "aggressive-resize",
506 	  .type = OPTIONS_TABLE_FLAG,
507 	  .scope = OPTIONS_TABLE_WINDOW,
508 	  .default_num = 0
509 	},
510 
511 	{ .name = "allow-rename",
512 	  .type = OPTIONS_TABLE_FLAG,
513 	  .scope = OPTIONS_TABLE_WINDOW,
514 	  .default_num = 1
515 	},
516 
517 	{ .name = "alternate-screen",
518 	  .type = OPTIONS_TABLE_FLAG,
519 	  .scope = OPTIONS_TABLE_WINDOW,
520 	  .default_num = 1
521 	},
522 
523 	{ .name = "automatic-rename",
524 	  .type = OPTIONS_TABLE_FLAG,
525 	  .scope = OPTIONS_TABLE_WINDOW,
526 	  .default_num = 1
527 	},
528 
529 	{ .name = "automatic-rename-format",
530 	  .type = OPTIONS_TABLE_STRING,
531 	  .scope = OPTIONS_TABLE_WINDOW,
532 	  .default_str = "#{?pane_in_mode,[tmux],#{pane_current_command}}"
533 	                 "#{?pane_dead,[dead],}"
534 	},
535 
536 	{ .name = "clock-mode-colour",
537 	  .type = OPTIONS_TABLE_COLOUR,
538 	  .scope = OPTIONS_TABLE_WINDOW,
539 	  .default_num = 4
540 	},
541 
542 	{ .name = "clock-mode-style",
543 	  .type = OPTIONS_TABLE_CHOICE,
544 	  .scope = OPTIONS_TABLE_WINDOW,
545 	  .choices = options_table_clock_mode_style_list,
546 	  .default_num = 1
547 	},
548 
549 	{ .name = "force-height",
550 	  .type = OPTIONS_TABLE_NUMBER,
551 	  .scope = OPTIONS_TABLE_WINDOW,
552 	  .minimum = 0,
553 	  .maximum = INT_MAX,
554 	  .default_num = 0
555 	},
556 
557 	{ .name = "force-width",
558 	  .type = OPTIONS_TABLE_NUMBER,
559 	  .scope = OPTIONS_TABLE_WINDOW,
560 	  .minimum = 0,
561 	  .maximum = INT_MAX,
562 	  .default_num = 0
563 	},
564 
565 	{ .name = "main-pane-height",
566 	  .type = OPTIONS_TABLE_NUMBER,
567 	  .scope = OPTIONS_TABLE_WINDOW,
568 	  .minimum = 1,
569 	  .maximum = INT_MAX,
570 	  .default_num = 24
571 	},
572 
573 	{ .name = "main-pane-width",
574 	  .type = OPTIONS_TABLE_NUMBER,
575 	  .scope = OPTIONS_TABLE_WINDOW,
576 	  .minimum = 1,
577 	  .maximum = INT_MAX,
578 	  .default_num = 80
579 	},
580 
581 	{ .name = "mode-attr",
582 	  .type = OPTIONS_TABLE_ATTRIBUTES,
583 	  .scope = OPTIONS_TABLE_WINDOW,
584 	  .default_num = 0,
585 	  .style = "mode-style"
586 	},
587 
588 	{ .name = "mode-bg",
589 	  .type = OPTIONS_TABLE_COLOUR,
590 	  .scope = OPTIONS_TABLE_WINDOW,
591 	  .default_num = 3,
592 	  .style = "mode-style"
593 	},
594 
595 	{ .name = "mode-fg",
596 	  .type = OPTIONS_TABLE_COLOUR,
597 	  .scope = OPTIONS_TABLE_WINDOW,
598 	  .default_num = 0,
599 	  .style = "mode-style"
600 	},
601 
602 	{ .name = "mode-keys",
603 	  .type = OPTIONS_TABLE_CHOICE,
604 	  .scope = OPTIONS_TABLE_WINDOW,
605 	  .choices = options_table_mode_keys_list,
606 	  .default_num = MODEKEY_EMACS
607 	},
608 
609 	{ .name = "mode-style",
610 	  .type = OPTIONS_TABLE_STYLE,
611 	  .scope = OPTIONS_TABLE_WINDOW,
612 	  .default_str = "bg=yellow,fg=black"
613 	},
614 
615 	{ .name = "monitor-activity",
616 	  .type = OPTIONS_TABLE_FLAG,
617 	  .scope = OPTIONS_TABLE_WINDOW,
618 	  .default_num = 0
619 	},
620 
621 	{ .name = "monitor-silence",
622 	  .type = OPTIONS_TABLE_NUMBER,
623 	  .scope = OPTIONS_TABLE_WINDOW,
624 	  .minimum = 0,
625 	  .maximum = INT_MAX,
626 	  .default_num = 0
627 	},
628 
629 	{ .name = "other-pane-height",
630 	  .type = OPTIONS_TABLE_NUMBER,
631 	  .scope = OPTIONS_TABLE_WINDOW,
632 	  .minimum = 0,
633 	  .maximum = INT_MAX,
634 	  .default_num = 0
635 	},
636 
637 	{ .name = "other-pane-width",
638 	  .type = OPTIONS_TABLE_NUMBER,
639 	  .scope = OPTIONS_TABLE_WINDOW,
640 	  .minimum = 0,
641 	  .maximum = INT_MAX,
642 	  .default_num = 0
643 	},
644 
645 	{ .name = "pane-active-border-bg",
646 	  .type = OPTIONS_TABLE_COLOUR,
647 	  .scope = OPTIONS_TABLE_WINDOW,
648 	  .default_num = 8,
649 	  .style = "pane-active-border-style"
650 	},
651 
652 	{ .name = "pane-active-border-fg",
653 	  .type = OPTIONS_TABLE_COLOUR,
654 	  .scope = OPTIONS_TABLE_WINDOW,
655 	  .default_num = 2,
656 	  .style = "pane-active-border-style"
657 	},
658 
659 	{ .name = "pane-active-border-style",
660 	  .type = OPTIONS_TABLE_STYLE,
661 	  .scope = OPTIONS_TABLE_WINDOW,
662 	  .default_str = "fg=green"
663 	},
664 
665 	{ .name = "pane-base-index",
666 	  .type = OPTIONS_TABLE_NUMBER,
667 	  .scope = OPTIONS_TABLE_WINDOW,
668 	  .minimum = 0,
669 	  .maximum = USHRT_MAX,
670 	  .default_num = 0
671 	},
672 
673 	{ .name = "pane-border-bg",
674 	  .type = OPTIONS_TABLE_COLOUR,
675 	  .scope = OPTIONS_TABLE_WINDOW,
676 	  .default_num = 8,
677 	  .style = "pane-border-style"
678 	},
679 
680 	{ .name = "pane-border-fg",
681 	  .type = OPTIONS_TABLE_COLOUR,
682 	  .scope = OPTIONS_TABLE_WINDOW,
683 	  .default_num = 8,
684 	  .style = "pane-border-style"
685 	},
686 
687 	{ .name = "pane-border-format",
688 	  .type = OPTIONS_TABLE_STRING,
689 	  .scope = OPTIONS_TABLE_WINDOW,
690 	  .default_str = "#{?pane_active,#[reverse],}#{pane_index}#[default] "
691 	                 "\"#{pane_title}\""
692 	},
693 
694 	{ .name = "pane-border-status",
695 	  .type = OPTIONS_TABLE_CHOICE,
696 	  .scope = OPTIONS_TABLE_WINDOW,
697 	  .choices = options_table_pane_status_list,
698 	  .default_num = 0
699 	},
700 
701 	{ .name = "pane-border-style",
702 	  .type = OPTIONS_TABLE_STYLE,
703 	  .scope = OPTIONS_TABLE_WINDOW,
704 	  .default_str = "default"
705 	},
706 
707 	{ .name = "remain-on-exit",
708 	  .type = OPTIONS_TABLE_FLAG,
709 	  .scope = OPTIONS_TABLE_WINDOW,
710 	  .default_num = 0
711 	},
712 
713 	{ .name = "synchronize-panes",
714 	  .type = OPTIONS_TABLE_FLAG,
715 	  .scope = OPTIONS_TABLE_WINDOW,
716 	  .default_num = 0
717 	},
718 
719 	{ .name = "window-active-style",
720 	  .type = OPTIONS_TABLE_STYLE,
721 	  .scope = OPTIONS_TABLE_WINDOW,
722 	  .default_str = "default"
723 	},
724 
725 	{ .name = "window-style",
726 	  .type = OPTIONS_TABLE_STYLE,
727 	  .scope = OPTIONS_TABLE_WINDOW,
728 	  .default_str = "default"
729 	},
730 
731 	{ .name = "window-status-activity-attr",
732 	  .type = OPTIONS_TABLE_ATTRIBUTES,
733 	  .scope = OPTIONS_TABLE_WINDOW,
734 	  .default_num = GRID_ATTR_REVERSE,
735 	  .style = "window-status-activity-style"
736 	},
737 
738 	{ .name = "window-status-activity-bg",
739 	  .type = OPTIONS_TABLE_COLOUR,
740 	  .scope = OPTIONS_TABLE_WINDOW,
741 	  .default_num = 8,
742 	  .style = "window-status-activity-style"
743 	},
744 
745 	{ .name = "window-status-activity-fg",
746 	  .type = OPTIONS_TABLE_COLOUR,
747 	  .scope = OPTIONS_TABLE_WINDOW,
748 	  .default_num = 8,
749 	  .style = "window-status-activity-style"
750 	},
751 
752 	{ .name = "window-status-activity-style",
753 	  .type = OPTIONS_TABLE_STYLE,
754 	  .scope = OPTIONS_TABLE_WINDOW,
755 	  .default_str = "reverse"
756 	},
757 
758 	{ .name = "window-status-attr",
759 	  .type = OPTIONS_TABLE_ATTRIBUTES,
760 	  .scope = OPTIONS_TABLE_WINDOW,
761 	  .default_num = 0,
762 	  .style = "window-status-style"
763 	},
764 
765 	{ .name = "window-status-bell-attr",
766 	  .type = OPTIONS_TABLE_ATTRIBUTES,
767 	  .scope = OPTIONS_TABLE_WINDOW,
768 	  .default_num = GRID_ATTR_REVERSE,
769 	  .style = "window-status-bell-style"
770 	},
771 
772 	{ .name = "window-status-bell-bg",
773 	  .type = OPTIONS_TABLE_COLOUR,
774 	  .scope = OPTIONS_TABLE_WINDOW,
775 	  .default_num = 8,
776 	  .style = "window-status-bell-style"
777 	},
778 
779 	{ .name = "window-status-bell-fg",
780 	  .type = OPTIONS_TABLE_COLOUR,
781 	  .scope = OPTIONS_TABLE_WINDOW,
782 	  .default_num = 8,
783 	  .style = "window-status-bell-style"
784 	},
785 
786 	{ .name = "window-status-bell-style",
787 	  .type = OPTIONS_TABLE_STYLE,
788 	  .scope = OPTIONS_TABLE_WINDOW,
789 	  .default_str = "reverse"
790 	},
791 
792 	{ .name = "window-status-bg",
793 	  .type = OPTIONS_TABLE_COLOUR,
794 	  .scope = OPTIONS_TABLE_WINDOW,
795 	  .default_num = 8,
796 	  .style = "window-status-style"
797 	},
798 
799 	{ .name = "window-status-current-attr",
800 	  .type = OPTIONS_TABLE_ATTRIBUTES,
801 	  .scope = OPTIONS_TABLE_WINDOW,
802 	  .default_num = 0,
803 	  .style = "window-status-current-style"
804 	},
805 
806 	{ .name = "window-status-current-bg",
807 	  .type = OPTIONS_TABLE_COLOUR,
808 	  .scope = OPTIONS_TABLE_WINDOW,
809 	  .default_num = 8,
810 	  .style = "window-status-current-style"
811 	},
812 
813 	{ .name = "window-status-current-fg",
814 	  .type = OPTIONS_TABLE_COLOUR,
815 	  .scope = OPTIONS_TABLE_WINDOW,
816 	  .default_num = 8,
817 	  .style = "window-status-current-style"
818 	},
819 
820 	{ .name = "window-status-current-format",
821 	  .type = OPTIONS_TABLE_STRING,
822 	  .scope = OPTIONS_TABLE_WINDOW,
823 	  .default_str = "#I:#W#{?window_flags,#{window_flags}, }"
824 	},
825 
826 	{ .name = "window-status-current-style",
827 	  .type = OPTIONS_TABLE_STYLE,
828 	  .scope = OPTIONS_TABLE_WINDOW,
829 	  .default_str = "default"
830 	},
831 
832 	{ .name = "window-status-fg",
833 	  .type = OPTIONS_TABLE_COLOUR,
834 	  .scope = OPTIONS_TABLE_WINDOW,
835 	  .default_num = 8,
836 	  .style = "window-status-style"
837 	},
838 
839 	{ .name = "window-status-format",
840 	  .type = OPTIONS_TABLE_STRING,
841 	  .scope = OPTIONS_TABLE_WINDOW,
842 	  .default_str = "#I:#W#{?window_flags,#{window_flags}, }"
843 	},
844 
845 	{ .name = "window-status-last-attr",
846 	  .type = OPTIONS_TABLE_ATTRIBUTES,
847 	  .scope = OPTIONS_TABLE_WINDOW,
848 	  .default_num = 0,
849 	  .style = "window-status-last-style"
850 	},
851 
852 	{ .name = "window-status-last-bg",
853 	  .type = OPTIONS_TABLE_COLOUR,
854 	  .scope = OPTIONS_TABLE_WINDOW,
855 	  .default_num = 8,
856 	  .style = "window-status-last-style"
857 	},
858 
859 	{ .name = "window-status-last-fg",
860 	  .type = OPTIONS_TABLE_COLOUR,
861 	  .scope = OPTIONS_TABLE_WINDOW,
862 	  .default_num = 8,
863 	  .style = "window-status-last-style"
864 	},
865 
866 	{ .name = "window-status-last-style",
867 	  .type = OPTIONS_TABLE_STYLE,
868 	  .scope = OPTIONS_TABLE_WINDOW,
869 	  .default_str = "default"
870 	},
871 
872 	{ .name = "window-status-separator",
873 	  .type = OPTIONS_TABLE_STRING,
874 	  .scope = OPTIONS_TABLE_WINDOW,
875 	  .default_str = " "
876 	},
877 
878 	{ .name = "window-status-style",
879 	  .type = OPTIONS_TABLE_STYLE,
880 	  .scope = OPTIONS_TABLE_WINDOW,
881 	  .default_str = "default"
882 	},
883 
884 	{ .name = "wrap-search",
885 	  .type = OPTIONS_TABLE_FLAG,
886 	  .scope = OPTIONS_TABLE_WINDOW,
887 	  .default_num = 1
888 	},
889 
890 	{ .name = "xterm-keys",
891 	  .type = OPTIONS_TABLE_FLAG,
892 	  .scope = OPTIONS_TABLE_WINDOW,
893 	  .default_num = 1
894 	},
895 
896 	{ .name = NULL }
897 };
898