diff options
author | Anton Bambura <jenneron@protonmail.com> | 2024-02-12 17:10:19 +0200 |
---|---|---|
committer | Anton Bambura <jenneron@protonmail.com> | 2024-02-12 17:21:33 +0200 |
commit | c67121a40bb583a0e0f2e03927b712876400b0dd (patch) | |
tree | 3446dcc5b92003b817ceb6da8ffa137760206f4c | |
parent | 50d348cc2bb7272a29faef1587a0a4da35551bb7 (diff) |
add --inverted argument
-rwxr-xr-x | cros-keyboard-map.py | 26 |
1 files changed, 14 insertions, 12 deletions
diff --git a/cros-keyboard-map.py b/cros-keyboard-map.py index 58b1e6d..55ef1ba 100755 --- a/cros-keyboard-map.py +++ b/cros-keyboard-map.py @@ -30,7 +30,7 @@ def get_physmap_data(): except FileNotFoundError: return "" -def get_functional_row(physmap, use_vivaldi, super_is_held): +def get_functional_row(physmap, use_vivaldi, super_is_held, super_inverted): i = 0 result = "" for scancode in physmap: @@ -39,19 +39,19 @@ def get_functional_row(physmap, use_vivaldi, super_is_held): mapping = "f11" if vivaldi_keys[scancode] == "zoom" \ else vivaldi_keys[scancode] - match [super_is_held, use_vivaldi]: - case [True, True]: + match [super_is_held, use_vivaldi, super_inverted]: + case [True, True, False] | [False, True, True]: result += f"{vivaldi_keys[scancode]} = f{i}\n" - case [True, False]: + case [True, False, False] | [False, False, True]: result += f"f{i} = f{i}\n" - case [False, True]: + case [False, True, False] | [True, True, True]: result += f"{vivaldi_keys[scancode]} = {mapping}\n" - case [False, False]: + case [False, False, False] | [True, False, True]: result += f"f{i} = {mapping}\n" return result -def get_keyd_config(physmap): +def get_keyd_config(physmap, inverted): config = "" config += """[ids] k:0001:0001 @@ -59,15 +59,15 @@ k:0000:0000 [main] """ - config += get_functional_row(physmap, use_vivaldi=False, super_is_held=False) + config += get_functional_row(physmap, use_vivaldi=False, super_is_held=False, super_inverted=inverted) config += "\n" - config += get_functional_row(physmap, use_vivaldi=True, super_is_held=False) + config += get_functional_row(physmap, use_vivaldi=True, super_is_held=False, super_inverted=inverted) # map lock button to coffee config += "\nf13=coffee\nsleep=coffee\n" config += "\n[meta]\n" - config += get_functional_row(physmap, use_vivaldi=False, super_is_held=True) + config += get_functional_row(physmap, use_vivaldi=False, super_is_held=True, super_inverted=inverted) config += "\n" - config += get_functional_row(physmap, use_vivaldi=True, super_is_held=True) + config += get_functional_row(physmap, use_vivaldi=True, super_is_held=True, super_inverted=inverted) # Add various extra shortcuts config += """\n[alt] backspace = delete @@ -88,6 +88,8 @@ backspace = C-A-delete""" def main(): parser = argparse.ArgumentParser() parser.add_argument("-f", "--file", default="cros.conf", help="path to save config (default: cros.conf)") + parser.add_argument("-i", "--inverted", action="store_true", + help="use functional keys by default and media keys when super is held") args = vars(parser.parse_args()) physmap = get_physmap_data() @@ -95,7 +97,7 @@ def main(): print("no function row mapping found, using default mapping") physmap = ['EA', 'E9', 'E7', '91', '92', '94', '95', 'A0', 'AE', 'B0'] - config = get_keyd_config(physmap) + config = get_keyd_config(physmap, args["inverted"]) with open(args["file"], "w") as conf: conf.write(config) |