aboutsummaryrefslogtreecommitdiff
path: root/json_layer.py
diff options
context:
space:
mode:
Diffstat (limited to 'json_layer.py')
-rw-r--r--json_layer.py17
1 files changed, 12 insertions, 5 deletions
diff --git a/json_layer.py b/json_layer.py
index 9e98fc3..acc78d7 100644
--- a/json_layer.py
+++ b/json_layer.py
@@ -24,6 +24,7 @@ from kmk.modules.macros import Delay, Macros, Tap
# I do not define it yet, only declare it.
operators = {}
+
def key_of_json(element, inside=False):
""" Create the key from the key name.
The value can be either a string or a list. If the parameter is a
@@ -39,7 +40,7 @@ def key_of_json(element, inside=False):
key = key_of_json(hd)
if len(tl) != 0:
# Chainable key / recursive function
- return key( key_of_json(tl) )
+ return key(key_of_json(tl))
else:
return key
if isinstance(element, dict):
@@ -47,6 +48,7 @@ def key_of_json(element, inside=False):
return operators[key](value)
return
+
def encode_macro(element):
""" Encode the result of the function key_of_json in order to build a macro
of this
@@ -58,6 +60,7 @@ def encode_macro(element):
return Tap(key)
return key
+
def sequence(element):
""" Convert a list of keys into a sequence of them.
"""
@@ -66,20 +69,24 @@ def sequence(element):
# Send the list as arguments to the function
return KC.MACRO(*seq)
+
def no_release(element):
key = key_of_json(element)
return key(no_release=True)
+
def no_press(element):
key = key_of_json(element)
return key(no_press=True)
+
# Now I can define the dictionnary
-operators["key"] = key_of_json
-operators["chain"] = key_of_json
-operators["seq"] = sequence
+operators["key"] = key_of_json
+operators["chain"] = key_of_json
+operators["seq"] = sequence
operators["no_release"] = no_release
-operators["no_press"] = no_press
+operators["no_press"] = no_press
+
class Layer(object):
""" Layer as an object.