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