EDIT : Je viens d'ajouter deux crochets "[ ]" à la partie finale "to" :[{ -, car leur absence a provoqué une [erreur] !
\==========================================================================
Voici donc une "version finale" (quelques notes à/depuis une première tentative sont annexées en bas) :
... un exemple de code qui exclut toute saisie sauf les lettres "a" et "b".
Cet exemple est configuré pour fonctionner uniquement dans TextEdit (à des fins de test), mais vous pouvez bien sûr modifier/supprimer ces "conditions" (dans le dernier manipulateur).
- L'"exclusion" est préparée par Shft-Ctrl-A
qui fixe uniquement "none_but_ab"
à vrai (1).
- Le manipulateur d'arrêt (sécurité d'abord) est le suivant ; il règle les paramètres suivants "none_but_ab"
sur "0" après avoir maintenu "x" pendant 2 secondes.
- Les deux parties suivantes dépassent nos lettres "a" et "b", à l'exclusion de les empêcher de suivre anéantissement .
- Le dernier manipulateur fatal saisit "any : key_code" et le rend à "none"
- Faites attention à votre mécanisme d'arrêt : les touches singulières fonctionnent mieux, les combos modifiés peuvent échouer !
- Quelques autres idées :
En ajoutant "command" ("shift") au dernier "from", vous pourriez empêcher les raccourcis "app-Cmd" (lettres majuscules).
Karabiner El. peut démarrer avant la connexion (Préférences > 'Copier le ' actuel) ; le "mot de passe" serait affecté !
J'aimerais également savoir comment "Shift" pourrait être appliqué à "n'importe quel" : "key_code", en forçant les lettres majuscules, ou si les chiffres peuvent en quelque sorte être "sélectionnés". Eh bien, voyons voir
{ "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"
}
]
}
(Voici quelques restes d'une première réponse (supprimée) à ce sujet :
note the twisted "any: key_code" part that calls every key, including "modifiers…any"
Interestingly 'from-to' units within
{manipulateurs : } Karabiner.json are worked through from top to bottom
jusqu'à ce que l'un d'eux soit exécutable .
So if you want particular letters (a, b) to work nonetheless, you must call them previously.
Starting value for any variable is "0"
les valeurs seront "vivantes" pendant que le mousqueton fonctionne !
… 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.
)