From 17fd749e8dab01285806dc88c80dac6decd18f47 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Sun, 8 Sep 2019 19:28:41 +0530 Subject: [PATCH] Add some aliases when parsing config files for common key name variations --- kitty/config.py | 19 ++----------------- kitty/key_encoding.py | 15 ++------------- kitty/key_names.py | 28 ++++++++++++++++++++++++++++ 3 files changed, 32 insertions(+), 30 deletions(-) diff --git a/kitty/config.py b/kitty/config.py index 5a14c381b..9f5abfafd 100644 --- a/kitty/config.py +++ b/kitty/config.py @@ -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] diff --git a/kitty/key_encoding.py b/kitty/key_encoding.py index 60aeaa467..6eb63b747 100644 --- a/kitty/key_encoding.py +++ b/kitty/key_encoding.py @@ -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']) diff --git a/kitty/key_names.py b/kitty/key_names.py index 0f09bd1aa..1e3a1410c 100644 --- a/kitty/key_names.py +++ b/kitty/key_names.py @@ -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