summary |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
3a488f9)
Any option defined here applies to all keys (they can be overriden individualy)
Fixes https://git.immae.eu/mantisbt/view.php?id=5
done, the key will remain disabled (semi-transparent and crossed) for that
amount of time (in seconds).
done, the key will remain disabled (semi-transparent and crossed) for that
amount of time (in seconds).
+#### `common` key property
+
+A special entry `common` has its properties applying to all the keys. They can
+be overriden individually.
+
### `keys` : actions related to keys
This section lets you describe for each key, the list of actions associated to
### `keys` : actions related to keys
This section lets you describe for each key, the list of actions associated to
successifs sur la touche. La touche est désactivée (grisée et barrée) pendant
toute la durée des actions puis le délai de x secondes.
successifs sur la touche. La touche est désactivée (grisée et barrée) pendant
toute la durée des actions puis le délai de x secondes.
+### Propriété `common`
+
+Une entrée spéciale `common` s'applique à toutes les touches. Les propriétés
+définies dans cette entrée peuvent être modifiées individuellement.
+
### `keys` : actions sur les touches
Cette section sert à décrire, pour chaque touche, la liste des actions
### `keys` : actions sur les touches
Cette section sert à décrire, pour chaque touche, la liste des actions
def parse_config(self):
def update_alias(prop_hash, aliases, key):
if isinstance(aliases[key], dict):
def parse_config(self):
def update_alias(prop_hash, aliases, key):
if isinstance(aliases[key], dict):
- prop_hash.update(aliases[key], **prop_hash)
+ for alias in aliases[key]:
+ prop_hash.setdefault(alias, aliases[key][alias])
else:
warn_print("Alias {} is not a hash, ignored".format(key))
else:
warn_print("Alias {} is not a hash, ignored".format(key))
+ common_key_properties = {}
+ if 'common' in config['key_properties'] and\
+ isinstance(config['key_properties'], dict):
+ common_key_properties = config['key_properties']['common']
+ include_aliases(common_key_properties, aliases)
+ elif 'common' in config['key_properties']:
+ warn_print("'common' key in key_properties is not a hash, ignored")
+
key_properties = defaultdict(lambda: {
"actions": [],
"properties": {},
key_properties = defaultdict(lambda: {
"actions": [],
"properties": {},
})
for key in check_key_properties(config):
})
for key in check_key_properties(config):
+ if key == 'common':
+ continue
+
key_prop = config['key_properties'][key]
if not isinstance(key_prop, dict):
key_prop = config['key_properties'][key]
if not isinstance(key_prop, dict):
continue
include_aliases(key_prop, aliases)
continue
include_aliases(key_prop, aliases)
+ for _key in common_key_properties:
+ key_prop.setdefault(_key, common_key_properties[_key])
+
check_key_property(key_prop, key)
key_properties[key]["properties"] = key_prop
check_key_property(key_prop, key)
key_properties[key]["properties"] = key_prop