123 lines
5.7 KiB
Python
123 lines
5.7 KiB
Python
from kitty.conf.types import Action, Definition
|
|
|
|
definition = Definition(
|
|
'!kitten_options_utils',
|
|
Action(
|
|
'map', 'parse_map',
|
|
{'key_definitions': 'kitty.conf.utils.KittensKeyMap'},
|
|
['kitty.types.ParsedShortcut', 'kitty.conf.utils.KeyAction']
|
|
),
|
|
)
|
|
|
|
agr = definition.add_group
|
|
egr = definition.end_group
|
|
opt = definition.add_option
|
|
map = definition.add_map
|
|
|
|
# color options {{{
|
|
agr('color', 'Color')
|
|
|
|
opt('selection_foreground', '#FFFFFF',
|
|
option_type='to_color',
|
|
long_text='''
|
|
Foreground color for selected text while grabbing.''')
|
|
opt('selection_background', '#5294E2',
|
|
option_type='to_color',
|
|
long_text='''
|
|
Background color for selected text while grabbing.''')
|
|
|
|
egr() # }}}
|
|
|
|
# shortcuts {{{
|
|
agr('shortcuts', 'Keyboard shortcuts')
|
|
|
|
long_text = '''
|
|
Exit the grabber without copying anything.'''
|
|
map('Quit', 'quit q quit')
|
|
map('Quit', 'quit Escape quit', long_text=long_text)
|
|
|
|
long_text = '''
|
|
Copy the selected region to clipboard and exit.'''
|
|
map('Confirm', 'confirm Enter confirm', long_text=long_text)
|
|
|
|
long_text = '''
|
|
Cancel selection and move the cursor around the screen.
|
|
This will scroll the buffer if needed and possible.'''
|
|
map('Move left', 'move Left move left')
|
|
map('Move right', 'move Right move right')
|
|
map('Move up', 'move Up move up')
|
|
map('Move down', 'move Down move down')
|
|
map('Move page up', 'move Page_Up move page up')
|
|
map('Move page down', 'move Page_Down move page down')
|
|
map('Move first', 'move Home move first')
|
|
map('Move first nonwhite', 'move a move first nonwhite')
|
|
map('Move last nonwhite', 'move End move last nonwhite')
|
|
map('Move last', 'move e move last')
|
|
map('Move top', 'move Ctrl+Home move top')
|
|
map('Move bottom', 'move Ctrl+End move bottom')
|
|
map('Move word left', 'move Ctrl+Left move word left')
|
|
map('Move word right', 'move Ctrl+Right move word right', long_text=long_text)
|
|
|
|
long_text = '''
|
|
Scroll the buffer, if possible.
|
|
Cursor stays in the same position relative to the screen.'''
|
|
map('Scroll up', 'scroll Ctrl+Up scroll up')
|
|
map('Scroll down', 'scroll Ctrl+Down scroll down', long_text=long_text)
|
|
|
|
long_text = '''
|
|
#: Extend a stream selection.
|
|
#: If no region is selected, start selecting.
|
|
#: Stream selection includes all characters between the region ends.'''
|
|
map('SelectStream left', 'select_stream Shift+Left select stream left')
|
|
map('SelectStream right', 'select_stream Shift+Right select stream right')
|
|
map('SelectStream up', 'select_stream Shift+Up select stream up')
|
|
map('SelectStream down', 'select_stream Shift+Down select stream down')
|
|
map('SelectStream page up', 'select_stream Shift+Page_Up select stream page up')
|
|
map('SelectStream page down', 'select_stream Shift+Page_Down select stream page down')
|
|
map('SelectStream first', 'select_stream Shift+Home select stream first')
|
|
map('SelectStream first nonwhite', 'select_stream A select stream first nonwhite')
|
|
map('SelectStream last nonwhite', 'select_stream Shift+End select stream last nonwhite')
|
|
map('SelectStream last', 'select_stream E select stream last')
|
|
map('SelectStream top', 'select_stream Shift+Ctrl+Home select stream top')
|
|
map('SelectStream bottom', 'select_stream Shift+Ctrl+End select stream bottom')
|
|
map('SelectStream word left', 'select_stream Shift+Ctrl+Left select stream word left')
|
|
map('SelectStream word right', 'select_stream Shift+Ctrl+Right select stream word right', long_text=long_text)
|
|
|
|
long_text = '''
|
|
Extend a columnar selection.
|
|
If no region is selected, start selecting.
|
|
Columnar selection includes characters in the rectangle
|
|
defined by the region ends.'''
|
|
map('SelectColumnar left', 'select_columnar Alt+Left select columnar left')
|
|
map('SelectColumnar right', 'select_columnar Alt+Right select columnar right')
|
|
map('SelectColumnar up', 'select_columnar Alt+Up select columnar up')
|
|
map('SelectColumnar down', 'select_columnar Alt+Down select columnar down')
|
|
map('SelectColumnar page up', 'select_columnar Alt+Page_Up select columnar page up')
|
|
map('SelectColumnar page down', 'select_columnar Alt+Page_Down select columnar page down')
|
|
map('SelectColumnar first', 'select_columnar Alt+Home select columnar first')
|
|
map('SelectColumnar first nonwhite', 'select_columnar Alt+A select columnar first nonwhite')
|
|
map('SelectColumnar last nonwhite', 'select_columnar Alt+End select columnar last nonwhite')
|
|
map('SelectColumnar last', 'select_columnar Alt+E select columnar last')
|
|
map('SelectColumnar top', 'select_columnar Alt+Ctrl+Home select columnar top')
|
|
map('SelectColumnar bottom', 'select_columnar Alt+Ctrl+End select columnar bottom')
|
|
map('SelectColumnar word left', 'select_columnar Alt+Ctrl+Left select columnar word left')
|
|
map('SelectColumnar word right', 'select_columnar Alt+Ctrl+Right select columnar word right', long_text=long_text)
|
|
|
|
long_text = '''
|
|
Keys to enable vim-like modal selecting.'''
|
|
map('SetMode visual', 'set_mode v set_mode visual')
|
|
map('SetMode block', 'set_mode Ctrl+v set_mode block')
|
|
map('SetMode normal', 'set_mode Ctrl+LeftBracket set_mode normal', long_text=long_text)
|
|
|
|
egr() # }}}
|
|
|
|
agr('behavior', 'Behavior') # {{{
|
|
|
|
opt('select_by_word_characters', '',
|
|
option_type='str',
|
|
long_text='''
|
|
Characters considered part of a word when moving by words.
|
|
By default, those are taken from main Kitty config.''')
|
|
|
|
egr() # }}}
|