Karabiner-Elements: ¿Cómo deshabilitar un grupo de teclas de una manera simple?

4

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

Considere un ejemplo:

Bajo la siguiente condición

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

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

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

Aprecio tu conocimiento por adelantado.

    
pregunta T_T 16.09.2018 - 04:49

1 respuesta

2

EDITAR: Acabo de agregar dos corchetes "[]" a la final "to": [{-part, ya que su falta se solucionó [error]!

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

Por lo tanto, aquí hay una "versión final" (algunas notas a / desde un primer intento se adjuntan al final):

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

- La "exclusión" se prepara mediante Shft-Ctrl-A que solo establece "none_but_ab" en verdadero (1).
- El siguiente en la línea es un manipulador de parada (seguridad primero); establece "none_but_ab" a "0" después de mantener "x" 2 segundos.
- Las dos partes siguientes superan nuestras letras "a" y "b", excluyendo a partir de las siguientes annihilation .
- El último manipulador fatal toma "any: key_code" y lo muestra 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 "command" ("shift") a la última "from", podría evitar que la aplicación-Cmd-shortcuts (mayúsculas).
Karabiner 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 puede aplicar "Shift" a "cualquiera": "código_clave", forzando mayúsculas, o si los números pueden ser "seleccionados" de alguna manera. Bueno, 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 este:

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

Interestingly 'from-to' units within {manipulators:…} 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.

¡Los valores de

Starting value for any variable is "0" … "vivirán" mientras Karabiner se está ejecutando!

… 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. )

    
respondido por el clemsam lang 16.10.2018 - 15:10

Lea otras preguntas en las etiquetas