aiuto con la regola complessa personalizzata degli elementi di Karabiner

3

Ho un tasto a parentesi chiusa sulla mia tastiera. In precedenza, avevo usato il Karabiner per mappare L-control + open_bracket per close_bracket usando una regola personalizzata che ho scritto nel formato xml usato dal karabiner.

Tuttavia, ora che ho aggiornato a Sierra, Karabiner è fuori, e gli elementi di Karabiner sono dentro. Gli elementi di Karabiner usano un formato JSON. Ho provato a creare una nuova regola e inserirla nel file JSON:

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

Tuttavia, questa regola non sembra funzionare nel modo in cui mi piacerebbe farlo (basta mappare open_bracket a close_bracket).

Qualcuno ha un'idea di cosa sto facendo male qui?

    
posta lstbl 25.11.2017 - 15:39
fonte

2 risposte

2

Il tuo campione è apparso leggermente diverso rispetto alle altre regole che ho visto. Ecco una versione che funziona per me:

file: 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"
            }
          ]
        }
      ]
    }
  ]
}

Non sono stato in grado di determinare alcun modo per installare lo script se non attraverso l'opzione "Import more rules from the internet" , ma ho capito come avviare l'importatore sui miei file.

Supponendo di copiare il file in /tmp/map_lctl_plus_open_bracket_to_close_bracket.json , incollare il seguente url in Safari dovrebbe avviare l'importatore:

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

Ho completamente testato sia il contenuto del file che l'url di importazione in questo post, e tutto ha funzionato bene per me.

Buona fortuna!

EDIT: Immediatamente dopo aver fatto questo post, penso di aver trovato il filestore locale per aggiungere manualmente le regole.

link

Questo è il repository github per le regole sulla pagina "Import more rules from the internet" . Mostra come testare le regole localmente prima di inviarle al repository web.

TL; DR:

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

Il sito conferma anche la tecnica karabiner://... che ho menzionato sopra.

    
risposta data 27.11.2017 - 06:34
fonte
1

Il tuo codice lascia semplicemente fuori la parola chiave "obbligatorio" in combinazione con "left_control" - così Karabiner OGNI volta si accontenta di registrare solo "open_bracket" per rimappare la chiave in "close_bracket".

EDIT, ... molto più tardi: anche tu hai bisogno di codificare "type": "basic" in ogni manipolatore!

Nota: esiste una parola chiave complementare "opzionale" che può essere predefinita in mancanza di "obbligatorio" ...

    
risposta data 03.10.2018 - 19:54
fonte

Leggi altre domande sui tag