Expose keep-mods in frontend
This commit is contained in:
parent
83ff9fa994
commit
0233bc41af
6 changed files with 7 additions and 9 deletions
|
@ -14,6 +14,6 @@ properties:
|
|||
mods:
|
||||
type: int
|
||||
required: true
|
||||
masked-mods:
|
||||
keep-mods:
|
||||
type: int
|
||||
required: false
|
||||
|
|
|
@ -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, \
|
||||
|
|
|
@ -20,7 +20,6 @@
|
|||
#binding-cells = <0>;
|
||||
bindings = <&kp A>, << 1 B>;
|
||||
mods = <(MOD_LSFT|MOD_RSFT)>;
|
||||
masked-mods = <(MOD_LSFT|MOD_RSFT)>;
|
||||
};
|
||||
|
||||
};
|
||||
|
|
|
@ -22,7 +22,6 @@
|
|||
#binding-cells = <0>;
|
||||
bindings = <&kp A>, << 1 B>;
|
||||
mods = <(MOD_LSFT|MOD_RSFT)>;
|
||||
masked-mods = <(MOD_LSFT|MOD_RSFT)>;
|
||||
};
|
||||
|
||||
};
|
||||
|
|
|
@ -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
|
||||
};
|
||||
};
|
||||
|
||||
|
|
|
@ -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)>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
|
Loading…
Add table
Reference in a new issue