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