kovidgoyal/kitty · error · ValueError
The value {val} is not a valid choice for tab_powerline_styl
Error message
The value {val} is not a valid choice for tab_powerline_style What it means
tab_powerline_style chooses the shape of powerline tab separators and accepts only angled, round, slanted. The parser lowercases and validates; other values abort parsing with this ValueError.
Source
Thrown at kitty/options/parse.py:1420
def tab_bar_show_new_tab_button(self, val: str, ans: dict[str, typing.Any]) -> None:
ans['tab_bar_show_new_tab_button'] = to_bool(val)
def tab_bar_style(self, val: str, ans: dict[str, typing.Any]) -> None:
val = val.lower()
if val not in self.choices_for_tab_bar_style:
raise ValueError(f"The value {val} is not a valid choice for tab_bar_style")
ans["tab_bar_style"] = val
choices_for_tab_bar_style = frozenset(('fade', 'hidden', 'powerline', 'separator', 'slant', 'custom'))
def tab_fade(self, val: str, ans: dict[str, typing.Any]) -> None:
ans['tab_fade'] = tab_fade(val)
def tab_powerline_style(self, val: str, ans: dict[str, typing.Any]) -> None:
val = val.lower()
if val not in self.choices_for_tab_powerline_style:
raise ValueError(f"The value {val} is not a valid choice for tab_powerline_style")
ans["tab_powerline_style"] = val
choices_for_tab_powerline_style = frozenset(('angled', 'round', 'slanted'))
def tab_separator(self, val: str, ans: dict[str, typing.Any]) -> None:
ans['tab_separator'] = tab_separator(val)
def tab_switch_strategy(self, val: str, ans: dict[str, typing.Any]) -> None:
val = val.lower()
if val not in self.choices_for_tab_switch_strategy:
raise ValueError(f"The value {val} is not a valid choice for tab_switch_strategy")
ans["tab_switch_strategy"] = val
choices_for_tab_switch_strategy = frozenset(('last', 'left', 'previous', 'right'))
def tab_title_max_length(self, val: str, ans: dict[str, typing.Any]) -> None:
ans['tab_title_max_length'] = positive_int(val)
View on GitHub (pinned to 6d5d0c4406)
Solutions
- Use one of: angled, round, slanted
- Note it is 'round' not 'rounded' and 'slanted' not 'slant' (unlike tab_bar_style)
- Fix typos introduced by hand-editing
Example fix
# before tab_powerline_style rounded # after tab_powerline_style round
Defensive patterns
Strategy: validation
Validate before calling
value = value.lower()
if value not in ('angled','round','slanted'):
raise SystemExit(f'bad tab_powerline_style: {value}') Type guard
def is_tab_powerline_style(v: str) -> bool:
return v.lower() in ('angled','round','slanted') Prevention
- It's 'round' not 'rounded'; 'slanted' not 'slant'
- Keep tab_bar_style and tab_powerline_style keywords straight
When it happens
Trigger: Setting `tab_powerline_style flat`, `circle`, or a typo like `angel` in kitty.conf while using tab_bar_style powerline.
Common situations: Confusing separator shape names with font powerline glyph names; copy-paste errors from dotfiles; values valid in other terminals (e.g. 'round' vs 'rounded') — note it is 'round', not 'rounded'.
Related errors
- The value {val} is not a valid choice for tab_bar_align
- The value {val} is not a valid choice for tab_bar_style
- The value {x} is not a known choice
- The value {val} is not a valid choice for progress_bar
- The value {val} is not a valid choice for scrollbar
AI-assisted analysis of kovidgoyal/kitty@6d5d0c4406 (2026-08-27).
Data as JSON: /api/errors/5de96f88c5294d35.
Report an issue: GitHub.