Add some aliases when parsing config files for common key name variations

This commit is contained in:
Kovid Goyal 2019-09-08 19:28:41 +05:30
parent 70c2765a6e
commit 17fd749e8d
No known key found for this signature in database
GPG Key ID: 06BC317B515ACE7C
3 changed files with 32 additions and 30 deletions

View File

@ -20,22 +20,7 @@ from .conf.utils import (
from .config_data import all_options, parse_mods, type_map
from .constants import cache_dir, defconf, is_macos
from .utils import log_error
from .key_names import get_key_name_lookup
named_keys = {
"'": 'APOSTROPHE',
',': 'COMMA',
'-': 'MINUS',
'_': 'UNDERSCORE',
'.': 'PERIOD',
'/': 'SLASH',
';': 'SEMICOLON',
'=': 'EQUAL',
'[': 'LEFT_BRACKET',
'\\': 'BACKSLASH',
']': 'RIGHT_BRACKET',
'`': 'GRAVE_ACCENT'
}
from .key_names import get_key_name_lookup, key_name_aliases
def parse_shortcut(sc):
@ -46,7 +31,7 @@ def parse_shortcut(sc):
if mods is None:
return None, None, None
key = parts[-1].upper()
key = getattr(defines, 'GLFW_KEY_' + named_keys.get(key, key), None)
key = getattr(defines, 'GLFW_KEY_' + key_name_aliases.get(key, key), None)
is_native = False
if key is None:
q = parts[-1]

15
kitty/key_encoding.py generated
View File

@ -6,6 +6,7 @@ import string
from collections import namedtuple
from . import fast_data_types as defines
from .key_names import key_name_aliases
# ENCODING {{{
ENCODING = {
@ -348,19 +349,7 @@ for key_name, enc in ENCODING.items():
g[key_name] = config_key_map[key_name] = key_name
key_rmap[enc] = key_name
config_key_map.update({
'`': g['GRAVE_ACCENT'],
'-': g['MINUS'],
'=': g['EQUAL'],
'[': g['LEFT_BRACKET'],
']': g['RIGHT_BRACKET'],
'\\': g['BACKSLASH'],
';': g['SEMICOLON'],
"'": g['APOSTROPHE'],
',': g['COMMA'],
'.': g['PERIOD'],
'/': g['SLASH'],
'ESC': g['ESCAPE'],
'+': g['PLUS'],
k: g[v] for k, v in key_name_aliases.items()
})
enter_key = KeyEvent(PRESS, 0, g['ENTER'])

View File

@ -8,6 +8,34 @@ from contextlib import suppress
from .constants import is_macos
key_name_aliases = {
"'": 'APOSTROPHE',
',': 'COMMA',
'-': 'MINUS',
'_': 'UNDERSCORE',
'.': 'PERIOD',
'/': 'SLASH',
';': 'SEMICOLON',
'=': 'EQUAL',
'[': 'LEFT_BRACKET',
'\\': 'BACKSLASH',
']': 'RIGHT_BRACKET',
'`': 'GRAVE_ACCENT',
'+': 'PLUS',
'ESC': 'ESCAPE',
'PGUP': 'PAGE_UP',
'PAGEUP': 'PAGE_UP',
'PGDN': 'PAGE_DOWN',
'PAGEDOWN': 'PAGE_DOWN',
'RETURN': 'ENTER',
'ARROWUP': 'UP',
'ARROWDOWN': 'DOWN',
'ARROWRIGHT': 'RIGHT',
'ARROWLEFT': 'LEFT',
}
def null_lookup(name, case_sensitive=False):
pass