aboutsummaryrefslogtreecommitdiffstats
path: root/key_config.py
diff options
context:
space:
mode:
Diffstat (limited to 'key_config.py')
-rw-r--r--key_config.py118
1 files changed, 73 insertions, 45 deletions
diff --git a/key_config.py b/key_config.py
index eaa2be2..f0cc348 100644
--- a/key_config.py
+++ b/key_config.py
@@ -1,63 +1,91 @@
+import json
+import os
from abc import ABC, abstractmethod
+CONFIG_PATH = "key_config.json"
+
class InputConfig(ABC):
@abstractmethod
- def get_keyzone_layout():
+ def get_keyzone_layout(self):
pass
@abstractmethod
- def get_airzone_layout():
+ def get_airzone_layout(self):
pass
class Umiguri32KeyZone(InputConfig):
def __init__(self):
super().__init__()
- self._UMIGIRI_32_KEYZONE_LAYOUT = {
- 31: "a",
- 30: "1",
- 29: "z",
- 28: "q",
- 27: "s",
- 26: "2",
- 25: "x",
- 24: "w",
- 23: "d",
- 22: "3",
- 21: "c",
- 20: "e",
- 19: "f",
- 18: "4",
- 17: "v",
- 16: "r",
- 15: "g",
- 14: "5",
- 13: "b",
- 12: "t",
- 11: "h",
- 10: "6",
- 9: "n",
- 8: "y",
- 7: "j",
- 6: "7",
- 5: "m",
- 4: "u",
- 3: "k",
- 2: "8",
- 1: "9",
- 0: "i",
- }
- self._UMIGIRI_32_AIRZONE_LAYOUT = {
- 0: "o",
- 1: "0",
- 2: "p",
- 3: "l",
- 4: ",",
- 5: ".",
- }
-
+ if os.path.exists(CONFIG_PATH):
+ with open(CONFIG_PATH, "r") as f:
+ config = json.load(f)
+ self._UMIGIRI_32_KEYZONE_LAYOUT = {
+ int(k): v for k, v in config["keyzone"].items()
+ }
+ self._UMIGIRI_32_AIRZONE_LAYOUT = {
+ int(k): v for k, v in config["airzone"].items()
+ }
+ else:
+ self._UMIGIRI_32_KEYZONE_LAYOUT = {
+ 31: "a",
+ 30: "1",
+ 29: "z",
+ 28: "q",
+ 27: "s",
+ 26: "2",
+ 25: "x",
+ 24: "w",
+ 23: "d",
+ 22: "3",
+ 21: "c",
+ 20: "e",
+ 19: "f",
+ 18: "4",
+ 17: "v",
+ 16: "r",
+ 15: "g",
+ 14: "5",
+ 13: "b",
+ 12: "t",
+ 11: "h",
+ 10: "6",
+ 9: "n",
+ 8: "y",
+ 7: "j",
+ 6: "7",
+ 5: "m",
+ 4: "u",
+ 3: "k",
+ 2: "8",
+ 1: "9",
+ 0: "i",
+ }
+
+ self._UMIGIRI_32_AIRZONE_LAYOUT = {
+ 0: "o",
+ 1: "0",
+ 2: "p",
+ 3: "l",
+ 4: ",",
+ 5: ".",
+ }
+
+ self._save_default_config()
+
+ def _save_default_config(self):
+ with open(CONFIG_PATH, "w") as f:
+ json.dump(
+ {
+ "keyzone": self._UMIGIRI_32_KEYZONE_LAYOUT,
+ "airzone": self._UMIGIRI_32_AIRZONE_LAYOUT,
+ },
+ f,
+ indent=4,
+ )
+
def get_keyzone_layout(self):
return self._UMIGIRI_32_KEYZONE_LAYOUT
send patches to the email below
yukais@pinapelz.com
include the subject [PATCH repo_name]
pinapelz.com
homepage