From 769cd9be3fc5cf6efde972414f1a3b0acb202b2a Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Tue, 28 Sep 2021 13:31:06 +0530 Subject: [PATCH] DRYer --- kittens/show_key/kitty_mode.py | 36 +++++++++++++++++++++------------- 1 file changed, 22 insertions(+), 14 deletions(-) diff --git a/kittens/show_key/kitty_mode.py b/kittens/show_key/kitty_mode.py index 2df8aef28..1e28ec35b 100644 --- a/kittens/show_key/kitty_mode.py +++ b/kittens/show_key/kitty_mode.py @@ -10,6 +10,27 @@ from kitty.key_encoding import ( from kittens.tui.handler import Handler from kittens.tui.loop import Loop +mod_names = { + SHIFT: 'Shift', + ALT: 'Alt', + CTRL: 'Ctrl', + SUPER: 'Super', + HYPER: 'Hyper', + META: 'Meta', + NUM_LOCK: 'NumLock', + CAPS_LOCK: 'CapsLock', +} + + +def format_mods(mods: int) -> str: + if not mods: + return '' + lmods = [] + for m, name in mod_names.items(): + if mods & m: + lmods.append(name) + return '+'.join(lmods) + class KeysHandler(Handler): @@ -24,20 +45,7 @@ class KeysHandler(Handler): REPEAT: 'REPEAT', RELEASE: 'RELEASE' }[key_event.type] - lmods = [] - for m, name in { - SHIFT: 'Shift', - ALT: 'Alt', - CTRL: 'Ctrl', - SUPER: 'Super', - HYPER: 'Hyper', - META: 'Meta', - NUM_LOCK: 'NumLock', - CAPS_LOCK: 'CapsLock', - }.items(): - if key_event.mods & m: - lmods.append(name) - mods = '+'.join(lmods) + mods = format_mods(key_event.mods) if mods: mods += '+' key = f'{mods}{key_event.key} '