diff options
author | Anton Bambura <jenneron@protonmail.com> | 2024-02-12 16:03:58 +0200 |
---|---|---|
committer | Anton Bambura <jenneron@protonmail.com> | 2024-02-12 16:35:28 +0200 |
commit | 50d348cc2bb7272a29faef1587a0a4da35551bb7 (patch) | |
tree | 21cd8ca153b905eda85de61b8a4bffb5d033b0ad | |
parent | bc6214c66ea79afeb294d4ee8d4ddf41df2668c0 (diff) |
add get_functional_row and unify its code
-rwxr-xr-x | cros-keyboard-map.py | 58 |
1 files changed, 25 insertions, 33 deletions
diff --git a/cros-keyboard-map.py b/cros-keyboard-map.py index 7a3dc41..58b1e6d 100755 --- a/cros-keyboard-map.py +++ b/cros-keyboard-map.py @@ -30,6 +30,27 @@ def get_physmap_data(): except FileNotFoundError: return "" +def get_functional_row(physmap, use_vivaldi, super_is_held): + i = 0 + result = "" + for scancode in physmap: + i += 1 + # Map zoom to f11 since most applications wont listen to zoom + mapping = "f11" if vivaldi_keys[scancode] == "zoom" \ + else vivaldi_keys[scancode] + + match [super_is_held, use_vivaldi]: + case [True, True]: + result += f"{vivaldi_keys[scancode]} = f{i}\n" + case [True, False]: + result += f"f{i} = f{i}\n" + case [False, True]: + result += f"{vivaldi_keys[scancode]} = {mapping}\n" + case [False, False]: + result += f"f{i} = {mapping}\n" + + return result + def get_keyd_config(physmap): config = "" config += """[ids] @@ -38,44 +59,15 @@ k:0000:0000 [main] """ - # make fn keys act like vivaldi keys when super isn't held - i = 0 - for scancode in physmap: - i += 1 - # Map zoom to f11 since most applications wont listen to zoom - if vivaldi_keys[scancode] == "zoom": - mapping = "f11" - else: - mapping = vivaldi_keys[scancode] - config += f"f{i} = {mapping}\n" + config += get_functional_row(physmap, use_vivaldi=False, super_is_held=False) config += "\n" - - # make vivaldi keys act like vivaldi keys when super isn't held - for scancode in physmap: - # Map zoom to f11 since most applications wont listen to zoom - if vivaldi_keys[scancode] == "zoom": - mapping = "f11" - else: - mapping = vivaldi_keys[scancode] - config += f"{vivaldi_keys[scancode]} = {mapping}\n" - + config += get_functional_row(physmap, use_vivaldi=True, super_is_held=False) # map lock button to coffee config += "\nf13=coffee\nsleep=coffee\n" - - # make fn keys act like fn keys when super is held - i = 0 config += "\n[meta]\n" - for scancode in physmap: - i += 1 - config += f"f{i} = f{i}\n" - - # make vivaldi keys act like like fn keys when super is held - i = 0 + config += get_functional_row(physmap, use_vivaldi=False, super_is_held=True) config += "\n" - for scancode in physmap: - i += 1 - config += f"{vivaldi_keys[scancode]} = f{i}\n" - + config += get_functional_row(physmap, use_vivaldi=True, super_is_held=True) # Add various extra shortcuts config += """\n[alt] backspace = delete |