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