mirror of
https://github.com/kovidgoyal/kitty.git
synced 2026-05-13 08:26:56 +00:00
Only parse color options for key=val specs in parse_colors
This commit is contained in:
parent
54d94d93b0
commit
2ead0de844
3 changed files with 314 additions and 7 deletions
|
|
@ -60,9 +60,11 @@ def main(args: list[str]=sys.argv) -> None:
|
|||
patch_color_list('tools/themes/collection.go', all_colors, 'ALL')
|
||||
nc = ',\n '.join(f'{x!r}' for x in nullable_colors)
|
||||
sc = ',\n '.join(f'{x!r}' for x in special_colors)
|
||||
ac = ',\n '.join(f'{x!r}' for x in all_colors)
|
||||
write_output('kitty', definition,
|
||||
f'\nnullable_colors = frozenset({{\n {nc}\n}})\n'
|
||||
f'\nspecial_colors = frozenset({{\n {sc}\n}})\n'
|
||||
f'\nall_colors = frozenset({{\n {ac}\n}})\n'
|
||||
)
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -5,13 +5,14 @@ import os
|
|||
from collections.abc import Iterable, Sequence
|
||||
from contextlib import suppress
|
||||
from enum import Enum
|
||||
from typing import Literal, Optional, TypedDict
|
||||
from typing import Any, Literal, Optional, TypedDict
|
||||
|
||||
from .config import parse_config
|
||||
from .constants import config_dir
|
||||
from .fast_data_types import Color, get_boss, get_options, glfw_get_system_color_theme, patch_color_profiles, patch_global_colors, set_os_window_chrome
|
||||
from .options.types import Options, nullable_colors, special_colors
|
||||
from .options.types import Options, all_colors, nullable_colors, special_colors
|
||||
from .rgb import color_from_int
|
||||
from .types import run_once
|
||||
from .typing_compat import WindowType
|
||||
|
||||
ColorsSpec = dict[str, Optional[int]]
|
||||
|
|
@ -191,19 +192,32 @@ class ThemeColors:
|
|||
theme_colors = ThemeColors()
|
||||
|
||||
|
||||
def parse_colors(args: Iterable[str | Iterable[str]], background_image_options: BackgroundImageOptions | None = None) -> Colors:
|
||||
@run_once
|
||||
def all_color_related_conf_keys() -> frozenset[str]:
|
||||
return all_colors | frozenset(BackgroundImageOptions.__optional_keys__) | frozenset({'transparent_background_colors'})
|
||||
|
||||
|
||||
def parse_colors(
|
||||
args: Iterable[str | Iterable[str]], background_image_options: BackgroundImageOptions | None = None,
|
||||
allow_reading_conf_files: bool = True,
|
||||
) -> Colors:
|
||||
from kitty.options.parse import parse_conf_item
|
||||
colors: dict[str, Color | None | int] = {}
|
||||
nullable_color_map: dict[str, int | None] = {}
|
||||
special_color_map: dict[str, int] = {}
|
||||
transparent_background_colors = ()
|
||||
allowed = all_color_related_conf_keys()
|
||||
for spec in args:
|
||||
conf: dict[str, Any] = {}
|
||||
if isinstance(spec, str):
|
||||
if '=' in spec:
|
||||
conf = parse_config((spec.replace('=', ' '),))
|
||||
else:
|
||||
k, sep, v = spec.partition('=')
|
||||
if sep == '=':
|
||||
if k in allowed:
|
||||
parse_conf_item(k, v, conf)
|
||||
elif allow_reading_conf_files:
|
||||
with open(os.path.expanduser(spec), encoding='utf-8', errors='replace') as f:
|
||||
conf = parse_config(f)
|
||||
else:
|
||||
elif allow_reading_conf_files:
|
||||
conf = parse_config(spec)
|
||||
transparent_background_colors = conf.pop('transparent_background_colors', ())
|
||||
if background_image_options is not None:
|
||||
|
|
|
|||
291
kitty/options/types.py
generated
291
kitty/options/types.py
generated
|
|
@ -1412,5 +1412,296 @@ special_colors = frozenset({
|
|||
'macos_titlebar_color'
|
||||
})
|
||||
|
||||
all_colors = frozenset({
|
||||
'cursor',
|
||||
'cursor_text_color',
|
||||
'cursor_trail_color',
|
||||
'scrollbar_handle_color',
|
||||
'scrollbar_track_color',
|
||||
'url_color',
|
||||
'visual_bell_color',
|
||||
'active_border_color',
|
||||
'inactive_border_color',
|
||||
'bell_border_color',
|
||||
'window_title_bar_active_foreground',
|
||||
'window_title_bar_active_background',
|
||||
'window_title_bar_inactive_foreground',
|
||||
'window_title_bar_inactive_background',
|
||||
'active_tab_foreground',
|
||||
'active_tab_background',
|
||||
'inactive_tab_foreground',
|
||||
'inactive_tab_background',
|
||||
'tab_bar_background',
|
||||
'tab_bar_margin_color',
|
||||
'foreground',
|
||||
'background',
|
||||
'selection_foreground',
|
||||
'selection_background',
|
||||
'color0',
|
||||
'color8',
|
||||
'color1',
|
||||
'color9',
|
||||
'color2',
|
||||
'color10',
|
||||
'color3',
|
||||
'color11',
|
||||
'color4',
|
||||
'color12',
|
||||
'color5',
|
||||
'color13',
|
||||
'color6',
|
||||
'color14',
|
||||
'color7',
|
||||
'color15',
|
||||
'mark1_foreground',
|
||||
'mark1_background',
|
||||
'mark2_foreground',
|
||||
'mark2_background',
|
||||
'mark3_foreground',
|
||||
'mark3_background',
|
||||
'color16',
|
||||
'color17',
|
||||
'color18',
|
||||
'color19',
|
||||
'color20',
|
||||
'color21',
|
||||
'color22',
|
||||
'color23',
|
||||
'color24',
|
||||
'color25',
|
||||
'color26',
|
||||
'color27',
|
||||
'color28',
|
||||
'color29',
|
||||
'color30',
|
||||
'color31',
|
||||
'color32',
|
||||
'color33',
|
||||
'color34',
|
||||
'color35',
|
||||
'color36',
|
||||
'color37',
|
||||
'color38',
|
||||
'color39',
|
||||
'color40',
|
||||
'color41',
|
||||
'color42',
|
||||
'color43',
|
||||
'color44',
|
||||
'color45',
|
||||
'color46',
|
||||
'color47',
|
||||
'color48',
|
||||
'color49',
|
||||
'color50',
|
||||
'color51',
|
||||
'color52',
|
||||
'color53',
|
||||
'color54',
|
||||
'color55',
|
||||
'color56',
|
||||
'color57',
|
||||
'color58',
|
||||
'color59',
|
||||
'color60',
|
||||
'color61',
|
||||
'color62',
|
||||
'color63',
|
||||
'color64',
|
||||
'color65',
|
||||
'color66',
|
||||
'color67',
|
||||
'color68',
|
||||
'color69',
|
||||
'color70',
|
||||
'color71',
|
||||
'color72',
|
||||
'color73',
|
||||
'color74',
|
||||
'color75',
|
||||
'color76',
|
||||
'color77',
|
||||
'color78',
|
||||
'color79',
|
||||
'color80',
|
||||
'color81',
|
||||
'color82',
|
||||
'color83',
|
||||
'color84',
|
||||
'color85',
|
||||
'color86',
|
||||
'color87',
|
||||
'color88',
|
||||
'color89',
|
||||
'color90',
|
||||
'color91',
|
||||
'color92',
|
||||
'color93',
|
||||
'color94',
|
||||
'color95',
|
||||
'color96',
|
||||
'color97',
|
||||
'color98',
|
||||
'color99',
|
||||
'color100',
|
||||
'color101',
|
||||
'color102',
|
||||
'color103',
|
||||
'color104',
|
||||
'color105',
|
||||
'color106',
|
||||
'color107',
|
||||
'color108',
|
||||
'color109',
|
||||
'color110',
|
||||
'color111',
|
||||
'color112',
|
||||
'color113',
|
||||
'color114',
|
||||
'color115',
|
||||
'color116',
|
||||
'color117',
|
||||
'color118',
|
||||
'color119',
|
||||
'color120',
|
||||
'color121',
|
||||
'color122',
|
||||
'color123',
|
||||
'color124',
|
||||
'color125',
|
||||
'color126',
|
||||
'color127',
|
||||
'color128',
|
||||
'color129',
|
||||
'color130',
|
||||
'color131',
|
||||
'color132',
|
||||
'color133',
|
||||
'color134',
|
||||
'color135',
|
||||
'color136',
|
||||
'color137',
|
||||
'color138',
|
||||
'color139',
|
||||
'color140',
|
||||
'color141',
|
||||
'color142',
|
||||
'color143',
|
||||
'color144',
|
||||
'color145',
|
||||
'color146',
|
||||
'color147',
|
||||
'color148',
|
||||
'color149',
|
||||
'color150',
|
||||
'color151',
|
||||
'color152',
|
||||
'color153',
|
||||
'color154',
|
||||
'color155',
|
||||
'color156',
|
||||
'color157',
|
||||
'color158',
|
||||
'color159',
|
||||
'color160',
|
||||
'color161',
|
||||
'color162',
|
||||
'color163',
|
||||
'color164',
|
||||
'color165',
|
||||
'color166',
|
||||
'color167',
|
||||
'color168',
|
||||
'color169',
|
||||
'color170',
|
||||
'color171',
|
||||
'color172',
|
||||
'color173',
|
||||
'color174',
|
||||
'color175',
|
||||
'color176',
|
||||
'color177',
|
||||
'color178',
|
||||
'color179',
|
||||
'color180',
|
||||
'color181',
|
||||
'color182',
|
||||
'color183',
|
||||
'color184',
|
||||
'color185',
|
||||
'color186',
|
||||
'color187',
|
||||
'color188',
|
||||
'color189',
|
||||
'color190',
|
||||
'color191',
|
||||
'color192',
|
||||
'color193',
|
||||
'color194',
|
||||
'color195',
|
||||
'color196',
|
||||
'color197',
|
||||
'color198',
|
||||
'color199',
|
||||
'color200',
|
||||
'color201',
|
||||
'color202',
|
||||
'color203',
|
||||
'color204',
|
||||
'color205',
|
||||
'color206',
|
||||
'color207',
|
||||
'color208',
|
||||
'color209',
|
||||
'color210',
|
||||
'color211',
|
||||
'color212',
|
||||
'color213',
|
||||
'color214',
|
||||
'color215',
|
||||
'color216',
|
||||
'color217',
|
||||
'color218',
|
||||
'color219',
|
||||
'color220',
|
||||
'color221',
|
||||
'color222',
|
||||
'color223',
|
||||
'color224',
|
||||
'color225',
|
||||
'color226',
|
||||
'color227',
|
||||
'color228',
|
||||
'color229',
|
||||
'color230',
|
||||
'color231',
|
||||
'color232',
|
||||
'color233',
|
||||
'color234',
|
||||
'color235',
|
||||
'color236',
|
||||
'color237',
|
||||
'color238',
|
||||
'color239',
|
||||
'color240',
|
||||
'color241',
|
||||
'color242',
|
||||
'color243',
|
||||
'color244',
|
||||
'color245',
|
||||
'color246',
|
||||
'color247',
|
||||
'color248',
|
||||
'color249',
|
||||
'color250',
|
||||
'color251',
|
||||
'color252',
|
||||
'color253',
|
||||
'color254',
|
||||
'color255',
|
||||
'wayland_titlebar_color',
|
||||
'macos_titlebar_color'
|
||||
})
|
||||
|
||||
|
||||
secret_options = ('remote_control_password', 'file_transfer_confirmation_bypass')
|
||||
Loading…
Add table
Add a link
Reference in a new issue