Karabiner-Elements: come disabilitare un gruppo di chiavi in modo semplice?

4

C'è un modo semplice per disabilitare un gruppo di chiavi in complesse modifiche in Karabiner-Elements?

Considera un esempio:

Nella seguente condizione

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

Voglio disabilitare tutti gli alfabeti / numeri / simboli (o la maggior parte di essi almeno), ad eccezione di a e b .

Solo per riferimento, questa pagina spiega come disabilitare le singole chiavi. Applicare questo approccio a molte molte chiavi non è efficiente.

Apprezzo molto la tua visione in anticipo.

    
posta T_T 16.09.2018 - 04:49
fonte

1 risposta

2

EDIT: Ho appena aggiunto due parentesi "[]" alla finale "to": [{-part, dato che la loro mancanza è stata ottenuta [errore]!

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

Quindi, ecco una "versione finale" (alcune note a / da un primo tentativo sono aggiunte in fondo):

... un codice di esempio che esclude qualsiasi digitazione eccetto le lettere "a" & "B".
Questo esempio è impostato per funzionare solo in TextEdit (a scopo di test), ma ovviamente è possibile modificare / eliminare queste "condizioni" (nell'ultimo manipolatore).

- Il "Escluso" è preparato da Shft-Ctrl-A che imposta solo "none_but_ab" su true (1).
- Il prossimo in linea è uno Stop-manipulator (prima sicurezza); imposta "none_but_ab" su "0" dopo aver premuto "x" 2 sec.
- Entrambe le seguenti parti mostrano le nostre lettere "a" e "b", escludendo dal seguire annihilation .
- L'ultimo manipolatore fatale prende "any: key_code" e lo rende "none" ...
- Fai attenzione con il tuo meccanismo di arresto: i tasti singoli funzionano meglio, le combo modificate potrebbero fallire!

- Altre idee:
Aggiungendo "command" ("shift") all'ultimo "from", è possibile evitare le scorciatoie app-Cmd (lettere maiuscole).
Karabiner El. può iniziare prima di accedere (Preferenze > 'Copia il corrente ...'); "password" sarebbe interessata!
Vorrei anche sapere come "Shift" potrebbe essere applicato a "any": "key_code", forzando le lettere maiuscole o se i numeri possono essere "selezionati" in qualche modo. Bene, vediamo ...

{ "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"
                   }
                   ]
}

(Qui ci sono alcuni resti di una prima risposta (cancellata) a questo:

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 fino a quando uno è eseguibile .
So if you want particular letters (a, b) to work nonetheless, you must call them previously.

Starting value for any variable is "0" ... i valori saranno "live" mentre Karabiner è in esecuzione!

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

    
risposta data 16.10.2018 - 15:10
fonte

Leggi altre domande sui tag