Add a setting to clear all shortcuts defined up to that point
This commit is contained in:
parent
bd0382830a
commit
f5abe7cbf7
2 changed files with 19 additions and 6 deletions
|
|
@ -333,6 +333,7 @@ def url_style(x):
|
|||
'copy_on_select': to_bool,
|
||||
'tab_bar_edge': tab_bar_edge,
|
||||
'kitty_mod': to_modifiers,
|
||||
'clear_all_shortcuts': to_bool,
|
||||
}
|
||||
|
||||
for name in (
|
||||
|
|
@ -347,6 +348,11 @@ def url_style(x):
|
|||
type_map['%s_tab_%s' % (a, b)] = to_color
|
||||
|
||||
|
||||
def init_shortcut_maps(ans):
|
||||
ans['keymap'] = {}
|
||||
ans['sequence_map'] = {}
|
||||
|
||||
|
||||
def special_handling(key, val, ans):
|
||||
if key == 'map':
|
||||
parse_key(val, ans['keymap'], ans['sequence_map'])
|
||||
|
|
@ -358,6 +364,10 @@ def special_handling(key, val, ans):
|
|||
# For legacy compatibility
|
||||
parse_send_text(val, ans['keymap'], ans['sequence_map'])
|
||||
return True
|
||||
if key == 'clear_all_shortcuts':
|
||||
if to_bool(val):
|
||||
init_shortcut_maps(ans)
|
||||
return
|
||||
|
||||
|
||||
defaults = None
|
||||
|
|
@ -367,11 +377,8 @@ def special_handling(key, val, ans):
|
|||
|
||||
|
||||
def parse_config(lines, check_keys=True):
|
||||
ans = {
|
||||
'keymap': {},
|
||||
'sequence_map': {},
|
||||
'symbol_map': {},
|
||||
}
|
||||
ans = {'symbol_map': {}}
|
||||
init_shortcut_maps(ans)
|
||||
parse_config_base(
|
||||
lines,
|
||||
defaults,
|
||||
|
|
@ -436,9 +443,12 @@ def merge_configs(defaults, vals):
|
|||
ans[k] = merge_dicts(v, newvals)
|
||||
else:
|
||||
ans[k] = vals.get(k, v)
|
||||
defvals = {'keymap': defaults.get('keymap', {}), 'sequence_map': defaults.get('sequence_map', {})}
|
||||
if vals.get('clear_all_shortcuts'):
|
||||
init_shortcut_maps(defvals)
|
||||
merge_keys(
|
||||
ans,
|
||||
{'keymap': defaults.get('keymap', {}), 'sequence_map': defaults.get('sequence_map', {})},
|
||||
defvals,
|
||||
{'keymap': vals.get('keymap', {}), 'sequence_map': vals.get('sequence_map', {})}
|
||||
)
|
||||
return ans
|
||||
|
|
|
|||
|
|
@ -485,6 +485,9 @@ map kitty_mod+escape kitty_shell window
|
|||
# map ctrl+alt+a send_text application Word\x1bOH
|
||||
# }}}
|
||||
|
||||
# You can have kitty remove all shortcut definition seen upto this point. Useful for
|
||||
# instance, to remove the default shortcuts.
|
||||
clear_all_shortcuts no
|
||||
# }}}
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue