kovidgoyal/kitty · info · ValueError

Invalid panel options specified: {e}

Error message

Invalid panel options specified: {e}

What it means

The box-drawing renderer encountered a Unicode codepoint in the U+2500 block family that has no case in its drawing table, so it renders the cell as blank and logs the codepoint. Note this table also handles some legacy/DOS glyphs via C()/S() macros; unknown ones degrade to blank.

Source

Thrown at kittens/panel/main.py:137

            'focus_policy': ('focus_policy',),
            'exclusive_zone': ('requested_exclusive_zone',),
            'override_exclusive_zone': ('override_exclusive_zone',),
            'hide_on_focus_loss': ('hide_on_focus_loss',),
        }
    )


def incrementally_update_layer_shell_config(existing: dict[str, Any], cli_options: Iterable[str]) -> LayerShellConfig:
    seen_options: dict[str, Any] = {}
    cli_options = [('' if x.startswith('--') else '--') + x for x in cli_options]
    try:
        try:
            opts, _ = parse_panel_args(cli_options, track_seen_options=seen_options)
        except SystemExit as e:
            raise ValueError(str(e))
        lsc = layer_shell_config(opts)
    except Exception as e:
        raise ValueError(f'Invalid panel options specified: {e}')
    lsc_cli_map = cli_option_to_lsc_configs_map()
    for option in seen_options:
        for config in lsc_cli_map.get(option, ()):
            existing[config] = getattr(lsc, config)
    if seen_options.get('edge') == 'background':
        existing['type'] = GLFW_LAYER_SHELL_BACKGROUND
    if existing['hide_on_focus_loss']:
        existing['focus_policy'] = GLFW_FOCUS_ON_DEMAND
    return LayerShellConfig(**existing)


mtime_map: dict[str, float] = {}


def have_config_files_been_updated(config_files: Iterable[str]) -> bool:
    ans = False
    for cf in config_files:
        try:

View on GitHub (pinned to 6d5d0c4406)

Solutions

  1. Update kitty — new Unicode additions (legacy computing symbols) get table entries over time
  2. Check the exact codepoint from the log against Unicode charts to confirm it's a genuine box/legacy glyph
  3. Report the codepoint upstream as a missing box-drawing case
Defensive patterns

Strategy: fallback

Prevention

When it happens

Trigger: Displaying an unusual box-drawing, legacy computing, or terminal glyph character that kitty's decorations.c table doesn't cover (or that a patch/added case didn't handle), e.g. rarely-used U+1FB00-series or exotic block glyphs.

Common situations: Running TUI apps that emit obscure line/box or legacy symbols; fonts with custom glyph mappings; newer Unicode than kitty's table supports.

Related errors


AI-assisted analysis of kovidgoyal/kitty@6d5d0c4406 (2026-08-27). Data as JSON: /api/errors/82f99332533047f5. Report an issue: GitHub.