Expose keep-mods in frontend

This commit is contained in:
urob 2022-10-08 09:35:28 -04:00
parent 83ff9fa994
commit 0233bc41af
6 changed files with 7 additions and 9 deletions

View file

@ -14,6 +14,6 @@ properties:
mods:
type: int
required: true
masked-mods:
keep-mods:
type: int
required: false

View file

@ -93,8 +93,8 @@ static int behavior_mod_morph_init(const struct device *dev) { return 0; }
.normal_binding = _TRANSFORM_ENTRY(0, n), \
.morph_binding = _TRANSFORM_ENTRY(1, n), \
.mods = DT_INST_PROP(n, mods), \
.masked_mods = COND_CODE_0(DT_INST_NODE_HAS_PROP(n, masked_mods), (DT_INST_PROP(n, mods)), \
(DT_INST_PROP(n, masked_mods))), \
.masked_mods = COND_CODE_0(DT_INST_NODE_HAS_PROP(n, keep_mods), (DT_INST_PROP(n, mods)), \
(DT_INST_PROP(n, mods) & ~DT_INST_PROP(n, keep_mods))), \
}; \
static struct behavior_mod_morph_data behavior_mod_morph_data_##n = {}; \
DEVICE_DT_INST_DEFINE(n, behavior_mod_morph_init, NULL, &behavior_mod_morph_data_##n, \

View file

@ -20,7 +20,6 @@
#binding-cells = <0>;
bindings = <&kp A>, <&lt 1 B>;
mods = <(MOD_LSFT|MOD_RSFT)>;
masked-mods = <(MOD_LSFT|MOD_RSFT)>;
};
};

View file

@ -22,7 +22,6 @@
#binding-cells = <0>;
bindings = <&kp A>, <&lt 1 B>;
mods = <(MOD_LSFT|MOD_RSFT)>;
masked-mods = <(MOD_LSFT|MOD_RSFT)>;
};
};

View file

@ -10,7 +10,7 @@
#binding-cells = <0>;
bindings = <&kp A>, <&kp B>;
mods = <(MOD_LSFT|MOD_RSFT)>;
masked-mods = <0>; // no masking
keep-mods = <(MOD_LSFT|MOD_RSFT)>; // no masking
};
};

View file

@ -68,9 +68,9 @@ mods = <(MOD_LGUI|MOD_LSFT|MOD_RGUI|MOD_RSFT)>;
### Advanced configuration
`masked-mods`
`keep-mods`
When a modifier specified in `mods` is being held, it won't be sent along with the morphed keycode if it is also part of `masked-mods`. To sent all modifiers along with the morphed keycode, set `masked-mods` to `<0>`. By default, `masked-mods` equals `mods`.
When a modifier specified in `mods` is being held, it won't be sent along with the morphed keycode, unless it is also specified in `keep-mods`. By default, `keep-mods` equals `0`.
For example, the following configuration morphs `LEFT_SHIFT` + `BACKSPACE` into `DELETE`, and morphs `RIGHT_SHIFT` + `BACKSPACE` into `RIGHT_SHIFT` + `DELETE`.
@ -83,7 +83,7 @@ For example, the following configuration morphs `LEFT_SHIFT` + `BACKSPACE` into
#binding-cells = <0>;
bindings = <&kp BACKSPACE>, <&kp DELETE>;
mods = <(MOD_LSFT|MOD_RSFT)>;
masked-mods = <(MOD_LSFT)>;
keep-mods = <(MOD_RSFT)>;
};
};
};