这是我在 Karabiner-Elements 中尝试过的代码。
轻按分号键时会发送分号✔
按住 Shift 键并点击分号时,将发送冒号 ✔
按住 CapsLock 并点击分号,结束发送✔
按住分号时,Shift 应该被激活 ✖
{
"global": {},
"profiles": [
{
"name": "Default",
"complex_modifications": {
"rules": [
{
"description": "CapsLock + Esc when tapped, set capslock_modifier variable when held",
"search to jump to this point": "capscaps",
"manipulators": [
{
"type": "basic",
"from": {
"key_code": "caps_lock",
"modifiers": {
"optional": ["any"]
}
},
"to": [
{
"set_variable": {
"name": "capslock_modifier",
"value": 1
}
}
],
"to_if_alone": [
{
"key_code": "escape"
}
],
"to_after_key_up": [
{
"set_variable": {
"name": "capslock_modifier",
"value": 0
}
}
]
}
]
},
{
"description": "Change semicolon to shift, colon, or end",
"manipulators": [
{
"type": "basic",
"from": {
"key_code": "semicolon",
";modifiers": {
"optional": ["any"]
}
},
"parameters": {
"basic.to_if_alone_timeout_milliseconds": 250,
"basic.to_if_held_down_threshold_milliseconds": 250
},
"to_if_alone": [
{
"key_code": "semicolon"
}
],
"to_if_held_down": [
{
"key_code": "right_shift",
"lazy": false
}
]
}
]
},
{
"description": "Change semicolon to shift, colon, or end",
"manipulators": [
{
"type": "basic",
"from": {
"key_code": "semicolon",
"modifiers": {
"optional": ["any"]
}
},
"conditions": [
{
"type": "variable_if",
"name": "capslock_modifier",
"value": 1
}
],
"to": [
{
"key_code": "end"
}
]
}
]
}
]
}
}
]
}
结尾有效,分号和冒号也有效。但按住时,它不能像 shift 一样工作。