Mosquetones-Elementos: ¿Cómo deshabilitar un grupo de llaves de forma sencilla?

¿Existe una forma sencilla de deshabilitar un grupo de teclas en modificaciones complejas en Karabiner-Elements?

Considere un ejemplo:

Bajo la siguiente condición

  "set_variable": {
      "name": "con-1",
      "value": 1
  }

Quiero deshabilitar todos los alfabetos/números/símbolos (o la mayoría de ellos al menos), excepto ay b.

Solo como referencia, esta página explica cómo deshabilitar teclas individuales. La aplicación de este enfoque a muchas claves no es eficiente.

Agradezco su conocimiento de antemano.

Respuestas (1)

EDITAR: ¡Acabo de agregar dos corchetes "[]" al final "a": [{ -parte, ya que su falta se volvió soan [error]!

================================================== ========================

Entonces, aquí hay una "versión final" (algunas notas a/de un primer intento se adjuntan en la parte inferior):

... algún código de muestra que excluye cualquier escritura excepto las letras "a" y "b".
Este ejemplo está configurado para funcionar solo en TextEdit (para fines de prueba), pero, por supuesto, puede cambiar/eliminar estas "condiciones" (en el último manipulador).

– Se prepara el "Excluyendo" por Shft-Ctrl-Alo que únicamente se establece "none_but_ab"en verdadero (1).
– El siguiente en la línea es un manipulador de parada (primero la seguridad); se establece "none_but_ab"en "0" después de mantener presionada "x" 2 seg.
– Ambas partes siguientes muestran nuestras letras "a" y "b", excluyéndolas de la siguiente aniquilación .
– El último manipulador fatal toma "any: key_code" y lo convierte en "none"...
– Tenga cuidado con su mecanismo de parada: las teclas singulares funcionan mejor, ¡los combos modificados pueden fallar!

– Algunas ideas más:
al agregar "comando" ("cambio") al último "de", podría evitar los accesos directos de app-Cmd (letras mayúsculas).
Mosquetón El. puede comenzar antes de iniciar sesión (Preferencias > 'Copiar el actual...'); ¡La "contraseña" se vería afectada!
También me gustaría saber cómo se podría aplicar "Shift" a "cualquier": "key_code", forzando letras mayúsculas, o si los números se pueden "seleccionar" de alguna manera. Bien, veamos …

{ "description": "=============  vk_none but a,b  ============= ",
   "manipulators": [
        {
           "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" },
         { 
     "conditions": [
                    { "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í hay algunos restos de una primera respuesta (eliminada) en esto:

note the twisted "any: key_code" part that calls every key, including "modifiers…any"

Interestingly 'from-to' units within{manipuladores: …} Karabiner.json are worked through from top to bottom hasta que uno sea ejecutable .
So if you want particular letters (a, b) to work nonetheless, you must call them previously.

Starting value for any variable is "0"… ¡los valores "vivirán" mientras Karabiner esté funcionando!

… while experimenting I made my monitor sleep, but when I typed my pw – one letter simply was not recognised. I had to start from an external drive and change my code.)

[Agrego comentarios anteriores (a la segunda "respuesta" eliminada): ] ________________________________ Lo más importante: gracias por las excelentes respuestas. – bmike♦ ______________________________ Oh, de nada – y probablemente tengas razón. Más adelante veré qué información de mi primer intento vale la pena agregar al nuevo; Estaba tan concentrado que no lo hice de inmediato. ¡Gracias por tus puntos de reputación! - clemsam lang
Gracias por tu perspicacia. Estoy tratando de crear una versión simple del modo vi. Quiero anular claves que no sean las que se usan en el modo normal, como 'jkhlwbgG0$oOiI'. Pero su código da un error '[error] [grabber] complex_modifications json error: toshould be array: {"conditions":[{"name":"none_but_ab","type":"variable_if","value":1} ,{"bundle_identifiers":["^com.apple.TextEdit"],"type":"frontmost_application_if"}],"from":{"any":"key_code","modifiers":{"opcional":[ "any"]}},"to":{"key_code":"vk_none"},"type":"basic"} '. ¿Me estoy perdiendo de algo?
Al principio no estaba muy seguro de haber entendido su pregunta (había pegado mi código publicado en karabiner.json y funcionó). Parece que "[error]..." solo espera corchetes "[ ]". Estos solo son necesarios en "from" cuando hay más de un {} en su "from": [ {…}, {…}, {…} ] pero "to" los quiere CADA vez; es gracioso que mi código funcionó de todos modos … ¡pero SÍ cambié esto de arriba!
¡Gracias por tu maravilloso código! Lo usé en mi modo Vim simple para KE. Puede encontrarlo en un archivo Nullify_keys.jsonaquí si está interesado .
Hola, no estoy seguro de si lo que pienso es cierto: investigué su código de GitHub. ¿Realmente tiene que llamar repetidamente a algunas teclas dobles como "b" y "e"? … Si son "reconocidos" en tu 1er "desde...hasta" el segundo ni siquiera será llamado. Sospecho que podrías omitir estos (segundos) dobletes. ¡Buen trabajo, tus "modos Vim"!