Objetivo
Se trata de confirmar si esta configuración es correcta para realizar la reasignación con Karabiner-Elements para la reasignación:
- caps_lock to left_control si está en la Terminal
- caps_lock to left_control si está en Emacs
- caps_lock a left_command de lo contrario
Aprecie si alguien puede confirmar si esto es lo suficientemente bueno, o sugiera formas mejores / correctas.
Fondo
Buscando una manera de volver a asignar claves en Mac Sierra y encontré Karabiner-Elements para este propósito, pero no muchos ejemplos y documentación sobre la sintaxis de karabiner.json. Por lo tanto, buscando entradas.
Código
"complex_modifications": {
"parameters": {
"basic.to_if_alone_timeout_milliseconds": 1000
},
"rules": [
{
"manipulators": [
{
"description": "Change caps_lock to left_command in Terminal.",
"conditions": [
{
"bundle_identifiers": [
"^com\.apple\.Terminal$",
"^com\.googlecode\.iterm2$",
"^co\.zeit\.hyperterm$",
"^co\.zeit\.hyper$"
],
"type": "frontmost_application_if"
}
],
"from": {
"key_code": "caps_lock",
"modifiers": {
"optional": [
"any"
]
}
},
"to": [
{
"key_code": "left_control"
}
],
"type": "basic"
}
]
},
{
"description": "caps_lock to left_control in Emacs",
"manipulators": [
{
"conditions": [
{
"bundle_identifiers": [
"org\.gnu\.Emacs"
],
"type": "frontmost_application_if"
}
],
"from": {
"key_code": "caps_lock",
"modifiers": {
"optional": [
"any"
]
}
},
"to": [
{
"key_code": "left_control"
}
],
"type": "basic"
}
]
},
{
"description": "caps_lock to left_command otherwise",
"manipulators": [
{
"from": {
"key_code": "caps_lock",
"modifiers": {
"optional": [
"any"
]
}
},
"to": [
{
"key_code": "left_command"
}
],
"type": "basic"
}
]
}
]
}