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