[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.89

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