EDICIÓN: ¡Acabo de agregar dos corchetes "[ ]" al final de la parte "to":[{ -, ya que su falta causó un [error]!
\==========================================================================
Entonces, aquí está una "versión final" (algunas notas de/inferior de un primer intento están añadidas en la parte inferior):
... algún código de ejemplo que excluye cualquier escritura excepto las letras "a" y "b".
Este ejemplo está configurado para funcionar solo en TextEdit (con fines de prueba), pero por supuesto puedes cambiar/eliminar estas "condiciones" (en el último manipulador).
– La "Exclusión" está preparada por Shft-Ctrl-A
que establece únicamente "none_but_ab"
como verdadero (1).
– A continuación, viene un manipulador de Parada (primero la seguridad); establece "none_but_ab"
como "0" después de mantener presionada la tecla "x" durante 2 segundos.
– Ambas partes siguientes imprimen nuestras letras "a" y "b", excluyéndolas de la aniquilación que sigue.
– El fatal último manipulador captura "cualquier: key_code" y lo convierte en "ninguno" …
– ¡Ten cuidado con tu mecanismo de Parada: las teclas simples funcionan mejor, las combinaciones modificadas pueden fallar!
– Algunas ideas más:
Al agregar "comando" ("shift") al último "de", podrías prevenir los atajos de teclado de Comando en las aplicaciones (letras mayúsculas).
Karabiner El. puede iniciarse antes de iniciar sesión (Preferencias > 'Copiar el actual …'); ¡"contraseña" se vería afectada!
También me gustaría saber cómo "Shift" podría aplicarse a "cualquier":"key_code", forzando letras mayúsculas, o si de alguna manera los números podrían ser "seleccionados". Bueno, veamos …
{ "description": "============= vk_none but a, b ============= ",
"manipuladores": [
{
"from": { "key_code": "a",
"modifiers": {
"mandatory": ["left_shift", "left_control"]
} },
"to": [
{ "set_variable": {
"name": "none_but_ab",
"value": 1 } }
],
"type": "basic"
},
{
"from": { "key_code": "x" },
"parameters": { "basic.to_if_held_down_threshold_milliseconds": 2000 },
"to_if_held_down": [
{ "key_code": "x" },
{ "set_variable": {
"name": "none_but_ab",
"value": 0 } }
],
"type": "basic"
},
{ "from": { "key_code": "a" },
"to": [ { "key_code": "a" } ],
"type": "basic" },
{ "from": { "key_code": "b" },
"to": [ { "key_code": "b" } ],
"type": "basic" },
{
"condiciones": [
{ "name": "none_but_ab",
"type": "variable_if",
"value": 1 },
{ "bundle_identifiers": [
"^com.apple.TextEdit" ],
"type": "frontmost_application_if"
}
],
"from": { "any": "key_code",
"modifiers": {
"optional": ["any"] }
},
"to": [ { "key_code": "vk_none" } ],
"type": "basic"
}
]
}
(Aquí quedan algunos restos de una primera respuesta (eliminada) en esto:
nota la parte "cualquier: key_code" retorcida que llama a cada tecla, incluidos los "modificadores…ninguno"
Interesantemente, las unidades 'de-a' dentro
{manipuladores: …} Karabiner.json se trabajan de arriba abajo
hasta que una es ejecutable.
Entonces, si quieres que letras particulares (a, b) funcionen de todas formas, debes llamarlas previamente.
El valor inicial para cualquier variable es "0"
… ¡los valores "vivirán" mientras Karabiner esté en funcionamiento!
… mientras experimentaba, hice que mi monitor se durmiera, pero cuando escribí mi contraseña – una letra simplemente no fue reconocida. Tuve que arrancar desde una unidad externa y cambiar mi código.
)