summaryrefslogtreecommitdiff
path: root/keyboards/handwired/ferris/keymaps/json2crab.py
diff options
context:
space:
mode:
Diffstat (limited to 'keyboards/handwired/ferris/keymaps/json2crab.py')
-rwxr-xr-xkeyboards/handwired/ferris/keymaps/json2crab.py76
1 files changed, 0 insertions, 76 deletions
diff --git a/keyboards/handwired/ferris/keymaps/json2crab.py b/keyboards/handwired/ferris/keymaps/json2crab.py
deleted file mode 100755
index a32429fae5..0000000000
--- a/keyboards/handwired/ferris/keymaps/json2crab.py
+++ /dev/null
@@ -1,76 +0,0 @@
-#!/usr/bin/env python3
-
-import argparse
-import sys
-import json
-
-indent_level=4
-
-def parse_cli():
- parser = argparse.ArgumentParser(description='Ferris keymap formatter')
- parser.add_argument("--input", type=argparse.FileType('r'),
- default=sys.stdin, help="Input keymap (json file produced by qmk configurator)")
- return parser.parse_args()
-
-def col_index(key_index):
- if key_index < 30:
- col = key_index % 5
- else:
- col = key_index % 2
- return col
-
-def format_layers(layers):
- formatted = indent_level * " " + "\"layers\": [\n"
- max_key_length = {}
- for layer in layers:
- for (index, keycode) in enumerate(layer):
- col = col_index(index)
- max_length = max_key_length.get(col)
- if (not max_length) or len(keycode) > max_length:
- max_key_length.update({col: len(keycode)})
- for (layer_index, layer) in enumerate(layers):
- formatted += 2 * indent_level * " "
- formatted += "["
- for (index, keycode) in enumerate(layer):
- if index > 30 and index % 2 == 0 or index % 5 == 0 and index != 0:
- formatted += (1 + 2 * indent_level) * " "
- formatted += json.dumps(keycode)
- if index == 33:
- formatted += "\n"
- elif index > 30 and index % 2 == 1 or index % 5 == 4:
- formatted += ",\n"
- else:
- n_spaces = max_key_length[col_index(index)] - len(keycode)
- formatted += n_spaces * " "
- formatted += ", "
- if index % 10 == 9:
- formatted += "\n"
- formatted += 2 * indent_level * " "
- if layer_index < len(layers) - 1:
- formatted += "],\n"
- else:
- formatted += "]\n"
- formatted += indent_level * " "
- formatted += "]"
-
- return formatted
-
-def format_keymap(keymap_json):
- formatted = "{"
- for (index, k) in enumerate(keymap_json):
- if k == "layers":
- formatted += format_layers(keymap_json[k])
- else:
- formatted += f"{indent_level * ' '}{json.dumps(k)}: {json.dumps(keymap_json[k])}"
- if index < len(keymap_json) - 1:
- formatted += ","
- formatted += "\n"
- formatted += "}"
- return formatted
-
-def main():
- args=parse_cli()
- keymap_json = json.loads(args.input.read())
- print(format_keymap(keymap_json))
-
-main()