Use variable_if
to accomplish the virtual modifiers.
The following example uses tab_modifier
variable as flag.
{
"manipulators": [
{
"from": {
"key_code": "tab"
},
"to": [
{
"set_variable": {
"name": "tab_modifier",
"value": 1
}
},
{
"key_code": "tab"
}
],
"to_after_key_up": [
{
"set_variable": {
"name": "tab_modifier",
"value": 0
}
}
],
"type": "basic"
},
{
"conditions": [
{
"type": "variable_if",
"name": "tab_modifier",
"value": 1
}
],
"from": {
"key_code": "c"
},
"to": [
{
"key_code": "t"
},
{
"key_code": "a"
},
{
"key_code": "b"
}
],
"type": "basic"
}
]
}