Last active
September 1, 2017 04:21
-
-
Save rcmdnk/198fcdc45e4d708dba18d019bf405fd4 to your computer and use it in GitHub Desktop.
Sticky shift by semicolon example for Karabiner-Elements
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"title": "sticky", | |
"rules": [ | |
{ | |
"description": "sticky shift - shift modifier", | |
"manipulators": [ | |
{ | |
"type": "basic", | |
"from": { | |
"key_code": "semicolon" | |
}, | |
"to": [ | |
{ | |
"set_variable": { | |
"name": "sticky_a", | |
"value": 1 | |
} | |
} | |
], | |
"conditions": [ | |
{ | |
"type": "variable_if", | |
"name": "sticky_a", | |
"value": 0 | |
} | |
] | |
}, | |
{ | |
"type": "basic", | |
"from": { | |
"key_code": "a" | |
}, | |
"to": [ | |
{ | |
"key_code": "a", | |
"modifiers": [ | |
"shift" | |
] | |
}, | |
{ | |
"set_variable": { | |
"name": "sticky_a", | |
"value": 0 | |
} | |
} | |
], | |
"conditions": [ | |
{ | |
"type": "variable_if", | |
"name": "sticky_a", | |
"value": 1 | |
} | |
] | |
}, | |
{ | |
"type": "basic", | |
"from": { | |
"key_code": "b" | |
}, | |
"to": [ | |
{ | |
"key_code": "b", | |
"modifiers": [ | |
"shift" | |
] | |
}, | |
{ | |
"set_variable": { | |
"name": "sticky_a", | |
"value": 0 | |
} | |
} | |
], | |
"conditions": [ | |
{ | |
"type": "variable_if", | |
"name": "sticky_a", | |
"value": 1 | |
} | |
] | |
}, | |
{ | |
"type": "basic", | |
"from": { | |
"key_code": "c" | |
}, | |
"to": [ | |
{ | |
"key_code": "c", | |
"modifiers": [ | |
"shift" | |
] | |
}, | |
{ | |
"set_variable": { | |
"name": "sticky_a", | |
"value": 0 | |
} | |
} | |
], | |
"conditions": [ | |
{ | |
"type": "variable_if", | |
"name": "sticky_a", | |
"value": 1 | |
} | |
] | |
}, | |
{ | |
"type": "basic", | |
"from": { | |
"key_code": "d" | |
}, | |
"to": [ | |
{ | |
"key_code": "d", | |
"modifiers": [ | |
"shift" | |
] | |
}, | |
{ | |
"set_variable": { | |
"name": "sticky_a", | |
"value": 0 | |
} | |
} | |
], | |
"conditions": [ | |
{ | |
"type": "variable_if", | |
"name": "sticky_a", | |
"value": 1 | |
} | |
] | |
}, | |
{ | |
"type": "basic", | |
"from": { | |
"key_code": "e" | |
}, | |
"to": [ | |
{ | |
"key_code": "e", | |
"modifiers": [ | |
"shift" | |
] | |
}, | |
{ | |
"set_variable": { | |
"name": "sticky_a", | |
"value": 0 | |
} | |
} | |
], | |
"conditions": [ | |
{ | |
"type": "variable_if", | |
"name": "sticky_a", | |
"value": 1 | |
} | |
] | |
}, | |
{ | |
"type": "basic", | |
"from": { | |
"key_code": "f" | |
}, | |
"to": [ | |
{ | |
"key_code": "f", | |
"modifiers": [ | |
"shift" | |
] | |
}, | |
{ | |
"set_variable": { | |
"name": "sticky_a", | |
"value": 0 | |
} | |
} | |
], | |
"conditions": [ | |
{ | |
"type": "variable_if", | |
"name": "sticky_a", | |
"value": 1 | |
} | |
] | |
}, | |
{ | |
"type": "basic", | |
"from": { | |
"key_code": "g" | |
}, | |
"to": [ | |
{ | |
"key_code": "g", | |
"modifiers": [ | |
"shift" | |
] | |
}, | |
{ | |
"set_variable": { | |
"name": "sticky_a", | |
"value": 0 | |
} | |
} | |
], | |
"conditions": [ | |
{ | |
"type": "variable_if", | |
"name": "sticky_a", | |
"value": 1 | |
} | |
] | |
}, | |
{ | |
"type": "basic", | |
"from": { | |
"key_code": "h" | |
}, | |
"to": [ | |
{ | |
"key_code": "h", | |
"modifiers": [ | |
"shift" | |
] | |
}, | |
{ | |
"set_variable": { | |
"name": "sticky_a", | |
"value": 0 | |
} | |
} | |
], | |
"conditions": [ | |
{ | |
"type": "variable_if", | |
"name": "sticky_a", | |
"value": 1 | |
} | |
] | |
}, | |
{ | |
"type": "basic", | |
"from": { | |
"key_code": "i" | |
}, | |
"to": [ | |
{ | |
"key_code": "i", | |
"modifiers": [ | |
"shift" | |
] | |
}, | |
{ | |
"set_variable": { | |
"name": "sticky_a", | |
"value": 0 | |
} | |
} | |
], | |
"conditions": [ | |
{ | |
"type": "variable_if", | |
"name": "sticky_a", | |
"value": 1 | |
} | |
] | |
}, | |
{ | |
"type": "basic", | |
"from": { | |
"key_code": "j" | |
}, | |
"to": [ | |
{ | |
"key_code": "j", | |
"modifiers": [ | |
"shift" | |
] | |
}, | |
{ | |
"set_variable": { | |
"name": "sticky_a", | |
"value": 0 | |
} | |
} | |
], | |
"conditions": [ | |
{ | |
"type": "variable_if", | |
"name": "sticky_a", | |
"value": 1 | |
} | |
] | |
}, | |
{ | |
"type": "basic", | |
"from": { | |
"key_code": "k" | |
}, | |
"to": [ | |
{ | |
"key_code": "k", | |
"modifiers": [ | |
"shift" | |
] | |
}, | |
{ | |
"set_variable": { | |
"name": "sticky_a", | |
"value": 0 | |
} | |
} | |
], | |
"conditions": [ | |
{ | |
"type": "variable_if", | |
"name": "sticky_a", | |
"value": 1 | |
} | |
] | |
}, | |
{ | |
"type": "basic", | |
"from": { | |
"key_code": "l" | |
}, | |
"to": [ | |
{ | |
"key_code": "l", | |
"modifiers": [ | |
"shift" | |
] | |
}, | |
{ | |
"set_variable": { | |
"name": "sticky_a", | |
"value": 0 | |
} | |
} | |
], | |
"conditions": [ | |
{ | |
"type": "variable_if", | |
"name": "sticky_a", | |
"value": 1 | |
} | |
] | |
}, | |
{ | |
"type": "basic", | |
"from": { | |
"key_code": "m" | |
}, | |
"to": [ | |
{ | |
"key_code": "m", | |
"modifiers": [ | |
"shift" | |
] | |
}, | |
{ | |
"set_variable": { | |
"name": "sticky_a", | |
"value": 0 | |
} | |
} | |
], | |
"conditions": [ | |
{ | |
"type": "variable_if", | |
"name": "sticky_a", | |
"value": 1 | |
} | |
] | |
}, | |
{ | |
"type": "basic", | |
"from": { | |
"key_code": "n" | |
}, | |
"to": [ | |
{ | |
"key_code": "n", | |
"modifiers": [ | |
"shift" | |
] | |
}, | |
{ | |
"set_variable": { | |
"name": "sticky_a", | |
"value": 0 | |
} | |
} | |
], | |
"conditions": [ | |
{ | |
"type": "variable_if", | |
"name": "sticky_a", | |
"value": 1 | |
} | |
] | |
}, | |
{ | |
"type": "basic", | |
"from": { | |
"key_code": "o" | |
}, | |
"to": [ | |
{ | |
"key_code": "o", | |
"modifiers": [ | |
"shift" | |
] | |
}, | |
{ | |
"set_variable": { | |
"name": "sticky_a", | |
"value": 0 | |
} | |
} | |
], | |
"conditions": [ | |
{ | |
"type": "variable_if", | |
"name": "sticky_a", | |
"value": 1 | |
} | |
] | |
}, | |
{ | |
"type": "basic", | |
"from": { | |
"key_code": "p" | |
}, | |
"to": [ | |
{ | |
"key_code": "p", | |
"modifiers": [ | |
"shift" | |
] | |
}, | |
{ | |
"set_variable": { | |
"name": "sticky_a", | |
"value": 0 | |
} | |
} | |
], | |
"conditions": [ | |
{ | |
"type": "variable_if", | |
"name": "sticky_a", | |
"value": 1 | |
} | |
] | |
}, | |
{ | |
"type": "basic", | |
"from": { | |
"key_code": "q" | |
}, | |
"to": [ | |
{ | |
"key_code": "q", | |
"modifiers": [ | |
"shift" | |
] | |
}, | |
{ | |
"set_variable": { | |
"name": "sticky_a", | |
"value": 0 | |
} | |
} | |
], | |
"conditions": [ | |
{ | |
"type": "variable_if", | |
"name": "sticky_a", | |
"value": 1 | |
} | |
] | |
}, | |
{ | |
"type": "basic", | |
"from": { | |
"key_code": "r" | |
}, | |
"to": [ | |
{ | |
"key_code": "r", | |
"modifiers": [ | |
"shift" | |
] | |
}, | |
{ | |
"set_variable": { | |
"name": "sticky_a", | |
"value": 0 | |
} | |
} | |
], | |
"conditions": [ | |
{ | |
"type": "variable_if", | |
"name": "sticky_a", | |
"value": 1 | |
} | |
] | |
}, | |
{ | |
"type": "basic", | |
"from": { | |
"key_code": "s" | |
}, | |
"to": [ | |
{ | |
"key_code": "s", | |
"modifiers": [ | |
"shift" | |
] | |
}, | |
{ | |
"set_variable": { | |
"name": "sticky_a", | |
"value": 0 | |
} | |
} | |
], | |
"conditions": [ | |
{ | |
"type": "variable_if", | |
"name": "sticky_a", | |
"value": 1 | |
} | |
] | |
}, | |
{ | |
"type": "basic", | |
"from": { | |
"key_code": "t" | |
}, | |
"to": [ | |
{ | |
"key_code": "t", | |
"modifiers": [ | |
"shift" | |
] | |
}, | |
{ | |
"set_variable": { | |
"name": "sticky_a", | |
"value": 0 | |
} | |
} | |
], | |
"conditions": [ | |
{ | |
"type": "variable_if", | |
"name": "sticky_a", | |
"value": 1 | |
} | |
] | |
}, | |
{ | |
"type": "basic", | |
"from": { | |
"key_code": "u" | |
}, | |
"to": [ | |
{ | |
"key_code": "u", | |
"modifiers": [ | |
"shift" | |
] | |
}, | |
{ | |
"set_variable": { | |
"name": "sticky_a", | |
"value": 0 | |
} | |
} | |
], | |
"conditions": [ | |
{ | |
"type": "variable_if", | |
"name": "sticky_a", | |
"value": 1 | |
} | |
] | |
}, | |
{ | |
"type": "basic", | |
"from": { | |
"key_code": "v" | |
}, | |
"to": [ | |
{ | |
"key_code": "v", | |
"modifiers": [ | |
"shift" | |
] | |
}, | |
{ | |
"set_variable": { | |
"name": "sticky_a", | |
"value": 0 | |
} | |
} | |
], | |
"conditions": [ | |
{ | |
"type": "variable_if", | |
"name": "sticky_a", | |
"value": 1 | |
} | |
] | |
}, | |
{ | |
"type": "basic", | |
"from": { | |
"key_code": "w" | |
}, | |
"to": [ | |
{ | |
"key_code": "w", | |
"modifiers": [ | |
"shift" | |
] | |
}, | |
{ | |
"set_variable": { | |
"name": "sticky_a", | |
"value": 0 | |
} | |
} | |
], | |
"conditions": [ | |
{ | |
"type": "variable_if", | |
"name": "sticky_a", | |
"value": 1 | |
} | |
] | |
}, | |
{ | |
"type": "basic", | |
"from": { | |
"key_code": "x" | |
}, | |
"to": [ | |
{ | |
"key_code": "x", | |
"modifiers": [ | |
"shift" | |
] | |
}, | |
{ | |
"set_variable": { | |
"name": "sticky_a", | |
"value": 0 | |
} | |
} | |
], | |
"conditions": [ | |
{ | |
"type": "variable_if", | |
"name": "sticky_a", | |
"value": 1 | |
} | |
] | |
}, | |
{ | |
"type": "basic", | |
"from": { | |
"key_code": "y" | |
}, | |
"to": [ | |
{ | |
"key_code": "y", | |
"modifiers": [ | |
"shift" | |
] | |
}, | |
{ | |
"set_variable": { | |
"name": "sticky_a", | |
"value": 0 | |
} | |
} | |
], | |
"conditions": [ | |
{ | |
"type": "variable_if", | |
"name": "sticky_a", | |
"value": 1 | |
} | |
] | |
}, | |
{ | |
"type": "basic", | |
"from": { | |
"key_code": "z" | |
}, | |
"to": [ | |
{ | |
"key_code": "z", | |
"modifiers": [ | |
"shift" | |
] | |
}, | |
{ | |
"set_variable": { | |
"name": "sticky_a", | |
"value": 0 | |
} | |
} | |
], | |
"conditions": [ | |
{ | |
"type": "variable_if", | |
"name": "sticky_a", | |
"value": 1 | |
} | |
] | |
}, | |
{ | |
"type": "basic", | |
"from": { | |
"any": "key_code", | |
"modifiers": { | |
"optional": [ | |
"any" | |
] | |
} | |
}, | |
"to": [ | |
{ | |
"key_code": "vk_none" | |
}, | |
{ | |
"set_variable": { | |
"name": "sticky_a", | |
"value": 0 | |
} | |
} | |
], | |
"conditions": [ | |
{ | |
"type": "variable_if", | |
"name": "sticky_a", | |
"value": 1 | |
} | |
] | |
} | |
] | |
} | |
] | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment