1# generated by gen-config.py DO NOT edit
2# vim:fileencoding=utf-8
3
4import typing
5from kitty.conf.utils import KeyAction, KittensKeyMap
6import kitty.conf.utils
7from kitty.rgb import Color
8import kitty.rgb
9from kitty.types import ParsedShortcut
10import kitty.types
11
12
13option_names = (  # {{{
14 'added_bg',
15 'added_margin_bg',
16 'background',
17 'diff_cmd',
18 'filler_bg',
19 'foreground',
20 'highlight_added_bg',
21 'highlight_removed_bg',
22 'hunk_bg',
23 'hunk_margin_bg',
24 'map',
25 'margin_bg',
26 'margin_fg',
27 'margin_filler_bg',
28 'num_context_lines',
29 'pygments_style',
30 'removed_bg',
31 'removed_margin_bg',
32 'replace_tab_by',
33 'search_bg',
34 'search_fg',
35 'select_bg',
36 'select_fg',
37 'syntax_aliases',
38 'title_bg',
39 'title_fg')  # }}}
40
41
42class Options:
43    added_bg: Color = Color(red=230, green=255, blue=237)
44    added_margin_bg: Color = Color(red=205, green=255, blue=216)
45    background: Color = Color(red=255, green=255, blue=255)
46    diff_cmd: str = 'auto'
47    filler_bg: Color = Color(red=250, green=251, blue=252)
48    foreground: Color = Color(red=0, green=0, blue=0)
49    highlight_added_bg: Color = Color(red=172, green=242, blue=189)
50    highlight_removed_bg: Color = Color(red=253, green=184, blue=192)
51    hunk_bg: Color = Color(red=241, green=248, blue=255)
52    hunk_margin_bg: Color = Color(red=219, green=237, blue=255)
53    margin_bg: Color = Color(red=250, green=251, blue=252)
54    margin_fg: Color = Color(red=170, green=170, blue=170)
55    margin_filler_bg: typing.Optional[kitty.rgb.Color] = None
56    num_context_lines: int = 3
57    pygments_style: str = 'default'
58    removed_bg: Color = Color(red=255, green=238, blue=240)
59    removed_margin_bg: Color = Color(red=255, green=220, blue=224)
60    replace_tab_by: str = '    '
61    search_bg: Color = Color(red=68, green=68, blue=68)
62    search_fg: Color = Color(red=255, green=255, blue=255)
63    select_bg: Color = Color(red=180, green=213, blue=254)
64    select_fg: typing.Optional[kitty.rgb.Color] = Color(red=0, green=0, blue=0)
65    syntax_aliases: typing.Dict[str, str] = {'pyj': 'py', 'pyi': 'py', 'recipe': 'py'}
66    title_bg: Color = Color(red=255, green=255, blue=255)
67    title_fg: Color = Color(red=0, green=0, blue=0)
68    map: typing.List[typing.Tuple[kitty.types.ParsedShortcut, kitty.conf.utils.KeyAction]] = []
69    key_definitions: KittensKeyMap = {}
70    config_paths: typing.Tuple[str, ...] = ()
71    config_overrides: typing.Tuple[str, ...] = ()
72
73    def __init__(self, options_dict: typing.Optional[typing.Dict[str, typing.Any]] = None) -> None:
74        if options_dict is not None:
75            null = object()
76            for key in option_names:
77                val = options_dict.get(key, null)
78                if val is not null:
79                    setattr(self, key, val)
80
81    @property
82    def _fields(self) -> typing.Tuple[str, ...]:
83        return option_names
84
85    def __iter__(self) -> typing.Iterator[str]:
86        return iter(self._fields)
87
88    def __len__(self) -> int:
89        return len(self._fields)
90
91    def _copy_of_val(self, name: str) -> typing.Any:
92        ans = getattr(self, name)
93        if isinstance(ans, dict):
94            ans = ans.copy()
95        elif isinstance(ans, list):
96            ans = ans[:]
97        return ans
98
99    def _asdict(self) -> typing.Dict[str, typing.Any]:
100        return {k: self._copy_of_val(k) for k in self}
101
102    def _replace(self, **kw: typing.Any) -> "Options":
103        ans = Options()
104        for name in self:
105            setattr(ans, name, self._copy_of_val(name))
106        for name, val in kw.items():
107            setattr(ans, name, val)
108        return ans
109
110    def __getitem__(self, key: typing.Union[int, str]) -> typing.Any:
111        k = option_names[key] if isinstance(key, int) else key
112        try:
113            return getattr(self, k)
114        except AttributeError:
115            pass
116        raise KeyError(f"No option named: {k}")
117
118
119defaults = Options()
120defaults.map = [
121    # quit
122    (ParsedShortcut(mods=0, key_name='q'), KeyAction('quit')),
123    # quit
124    (ParsedShortcut(mods=0, key_name='ESCAPE'), KeyAction('quit')),
125    # scroll_down
126    (ParsedShortcut(mods=0, key_name='j'), KeyAction('scroll_by', (1,))),
127    # scroll_down
128    (ParsedShortcut(mods=0, key_name='DOWN'), KeyAction('scroll_by', (1,))),
129    # scroll_up
130    (ParsedShortcut(mods=0, key_name='k'), KeyAction('scroll_by', (-1,))),
131    # scroll_up
132    (ParsedShortcut(mods=0, key_name='UP'), KeyAction('scroll_by', (-1,))),
133    # scroll_top
134    (ParsedShortcut(mods=0, key_name='HOME'), KeyAction('scroll_to', ('start',))),
135    # scroll_bottom
136    (ParsedShortcut(mods=0, key_name='END'), KeyAction('scroll_to', ('end',))),
137    # scroll_page_down
138    (ParsedShortcut(mods=0, key_name='PAGE_DOWN'), KeyAction('scroll_to', ('next-page',))),
139    # scroll_page_down
140    (ParsedShortcut(mods=0, key_name=' '), KeyAction('scroll_to', ('next-page',))),
141    # scroll_page_up
142    (ParsedShortcut(mods=0, key_name='PAGE_UP'), KeyAction('scroll_to', ('prev-page',))),
143    # next_change
144    (ParsedShortcut(mods=0, key_name='n'), KeyAction('scroll_to', ('next-change',))),
145    # prev_change
146    (ParsedShortcut(mods=0, key_name='p'), KeyAction('scroll_to', ('prev-change',))),
147    # all_context
148    (ParsedShortcut(mods=0, key_name='a'), KeyAction('change_context', ('all',))),
149    # default_context
150    (ParsedShortcut(mods=0, key_name='='), KeyAction('change_context', ('default',))),
151    # increase_context
152    (ParsedShortcut(mods=0, key_name='+'), KeyAction('change_context', (5,))),
153    # decrease_context
154    (ParsedShortcut(mods=0, key_name='-'), KeyAction('change_context', (-5,))),
155    # search_forward
156    (ParsedShortcut(mods=0, key_name='/'), KeyAction('start_search', (True, False))),
157    # search_backward
158    (ParsedShortcut(mods=0, key_name='?'), KeyAction('start_search', (True, True))),
159    # next_match
160    (ParsedShortcut(mods=0, key_name='.'), KeyAction('scroll_to', ('next-match',))),
161    # next_match
162    (ParsedShortcut(mods=0, key_name='>'), KeyAction('scroll_to', ('next-match',))),
163    # prev_match
164    (ParsedShortcut(mods=0, key_name=','), KeyAction('scroll_to', ('prev-match',))),
165    # prev_match
166    (ParsedShortcut(mods=0, key_name='<'), KeyAction('scroll_to', ('prev-match',))),
167    # search_forward_simple
168    (ParsedShortcut(mods=0, key_name='f'), KeyAction('start_search', (False, False))),
169    # search_backward_simple
170    (ParsedShortcut(mods=0, key_name='b'), KeyAction('start_search', (False, True))),
171]
172