ayuda con la regla compleja personalizada de elementos Karabiner

3

Tengo una llave de corchete en mi teclado. Anteriormente, había usado Karabiner para asignar L-control + open_bracket a close_bracket usando una regla personalizada que escribí en el formato xml utilizado por karabiner.

Sin embargo, ahora que he actualizado a Sierra, Karabiner está fuera y los elementos Karabiner están en. Los elementos Karabiner utilizan un formato JSON. Intenté crear una nueva regla y pegarla en el archivo JSON:

"rules": [
         {"manipulators": [
                {"description": "bracket rule",
                        "from": {"key_code": "open_bracket", 
                                 "modifiers": ["left_control"]
                                },
                          "to": [{"key_code": "close_bracket",
                                  "modifiers":[]
                                }] 
                }         ]
         }]

Sin embargo, esta regla no parece funcionar como me gustaría (solo asigna open_bracket a close_bracket).

¿Alguien tiene una idea de lo que estoy haciendo mal aquí?

    
pregunta lstbl 25.11.2017 - 15:39

2 respuestas

2

Su muestra parece ser ligeramente diferente a otras reglas que he visto. Aquí hay una versión que me funciona:

archivo: map_lctl_plus_open_bracket_to_close_bracket.json:

{
  "title": "Map Lft-Ctl+Open-Bracket to Close-Bracket",
  "rules": [
    {
      "manipulators": [
        {
          "description": "bracket rule",
          "type": "basic",
          "from": {
            "key_code": "open_bracket",
            "modifiers": {
              "mandatory": [
                "left_control"
              ],
              "optional": [
                "caps_lock"
              ]
            }
          },
          "to": [
            {
              "key_code": "close_bracket"
            }
          ]
        }
      ]
    }
  ]
}

No pude determinar ninguna forma de instalar el script que no fuera a través de la opción "Import more rules from the internet" , pero descubrí cómo iniciar el importador en mis propios archivos.

Suponiendo que copie el archivo en /tmp/map_lctl_plus_open_bracket_to_close_bracket.json , pegando la siguiente url en Safari debería iniciar el importador:

karabiner://karabiner/assets/complex_modifications/import?url=file%3A%2F%2F%2Ftmp%2Fmap_lctl_plus_open_bracket_to_close_bracket.json

He probado completamente tanto el contenido del archivo como la url de importación en esta publicación, y todo funcionó bien para mí.

¡Buena suerte!

EDITAR: Inmediatamente después de hacer esta publicación, creo que encontré dónde está el almacén de archivos local para agregar reglas manualmente.

enlace

Este es el repositorio github para las reglas en la página "Import more rules from the internet" . Muestra cómo probar las reglas localmente antes de enviarlas al repositorio web.

TL; DR:

$ cp my_rule.json ~/.config/karabiner/assets/complex_modifications

El sitio también confirma la técnica karabiner://... que mencioné anteriormente.

    
respondido por el David Farrell 27.11.2017 - 06:34
1

Su propio código simplemente omite la palabra clave "obligatorio" en combinación con "left_control", por lo que cada vez que Karabiner se contenta con registrar "open_bracket" para volver a asignar la clave a "close_bracket".

EDITAR,… mucho más tarde: ¡también es necesario para codificar "type": "basic" en cada manipulador!

Nota: hay una palabra clave complementaria "opcional" que puede ser predeterminada a falta de "obligatorio" ...

    
respondido por el clemsam lang 03.10.2018 - 19:54

Lea otras preguntas en las etiquetas