[BACK]Return to options-table.c CVS log [TXT][DIR] Up to [local] / src / usr.bin / tmux

Annotation of src/usr.bin/tmux/options-table.c, Revision 1.98

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