Here is the rule. It's the only rule I have while I'm testing. The problem also occurs when , "lazy": true is removed.
{
"description": "Interrupted caps_lock sends fn",
"manipulators": [
{
"from": {
"key_code": "caps_lock",
"modifiers": {
"optional": [
"any"
]
}
},
"to": [
{
"key_code": "fn",
"lazy": true
}
],
"to_if_alone": [
{
"key_code": "caps_lock"
}
],
"type": "basic"
}
]
}
It generates reasonable events when I chord caps_lock + a:
eventType:key_down code:0x10002 name:fn misc:
eventType:key_down code:0x4 name:a misc:
eventType:key_up code:0x4 name:a misc:
eventType:key_up code:0x10002 name:fn misc:
It also generates reasonable events when I tap caps_lock:
eventType:key_down code:0x10002 name:fn misc:
eventType:key_up code:0x10002 name:fn misc:
eventType:key_down code:0x39 name:caps_lock misc:
eventType:key_up code:0x39 name:caps_lock misc:
However, the Caps Lock state never turns on.
When I disable the keyboard in Karabiner-Elements' Devices preferences, tapping caps_lock successfully toggles the Caps Lock state.
If I leave Caps Lock on and re-enable the device, tapping caps_lock turns Caps Lock off. Tapping it again will not turn it back on.
I just installed the 12.1.3 beta and can confirm the problem still exists.
I uninstalled 12.1.3 and deleted karabiner.json.
I installed 12.1.0 from a fresh download.
caps_lock worked, it toggled the Caps Lock state on and off.
I added the troublesome rule (without "lazy": true), and caps_lock stopped working.
Event Viewer still sees caps_lock, but the system does not recognize it.
In case it helps, more details from the Event Viewer:
{
"frontmost_application": {
"bundle_identifier": "org.mozilla.firefox",
"file_path": "/Users/troc/Applications/Firefox.app/Contents/MacOS/firefox"
},
"input_source_identifiers": {
"input_mode_id": "",
"input_source_id": "com.apple.keylayout.US",
"language": "en"
},
"keyboard_type": "ansi",
"variables": {}
}
[
{
"is_keyboard": true,
"is_pointing_device": false,
"location_id": 103809024,
"manufacturer": "Apple Inc.",
"product": "Apple Internal Keyboard / Trackpad",
"product_id": 566,
"registry_entry_id": 4294969135,
"transport": "USB",
"vendor_id": 1452
},
{
"is_keyboard": false,
"is_pointing_device": true,
"location_id": 103809024,
"manufacturer": "Apple Inc.",
"product": "Apple Internal Keyboard / Trackpad",
"product_id": 566,
"registry_entry_id": 4294969145,
"transport": "USB",
"vendor_id": 1452
},
{
"is_keyboard": true,
"is_pointing_device": false,
"location_id": 605159424,
"manufacturer": "Apple, Inc",
"product": "Apple Keyboard",
"product_id": 544,
"registry_entry_id": 4295080964,
"transport": "USB",
"vendor_id": 1452
},
{
"is_keyboard": false,
"is_pointing_device": true,
"location_id": 605093888,
"manufacturer": "Tablet",
"product": "PTZ-630",
"product_id": 177,
"registry_entry_id": 4295080961,
"transport": "USB",
"vendor_id": 1386
}
]
I just now discovered the solution. It's a problem in my rule. Adding "hold_down_milliseconds": 100 to the "to_if_alone" block solved it.
Most helpful comment
I just now discovered the solution. It's a problem in my rule. Adding
"hold_down_milliseconds": 100to the"to_if_alone"block solved it.