3 votes

Éléments du mousqueton : Pourquoi une série (ou une séquence/un lot) de clés appelée dans { "to" : } n'est exécutée qu'une fois sur deux ?

J'ai utilisé l'application originale Karabiner 10.22 et j'ai pu restreindre très précisément toutes les actions via l'inspecteur d'accessibilité d'Apple pour qu'elles fonctionnent pour des fenêtres de dialogue spécifiques.

Cela n'est plus possible avec les éléments de mousqueton.

Ainsi, pour pouvoir (dans Safari) cliquer sur l'élément "Element Information" du menu contextuel (que j'utilise très souvent), j'ai essayé ce code dans "Complex Modifications" :

 "to": [ { "pointing_button": "button2" },
         { "key_code": "e" },
         { "key_code": "return_or_enter"}  ]

Qui a fait fonctionnait, mais n'ouvrait ou n'affichait que le menu contextuel ou effectivement exécuté "Element Information".

En expérimentant, j'ai trouvé une solution de contournement qui fonctionne en grande partie pour moi :

"parameters": { "basic.to_if_held_down_threshold_milliseconds": 50 }, 
"to":       [ { "pointing_button": "button2" } ],
"to_if_held_down":
            [ { "key_code": "e" },
              { "key_code": "return_or_enter"} ]

Mes questions :

Pourquoi les tous Les "commandes" du premier exemple de code sont-elles exécutées dans le bon ordre (ou : seulement alternativement) et (plus intéressant :) comment pouvez-vous vous assurer que les "commandes" du premier exemple de code sont exécutées dans le bon ordre (ou : seulement alternativement) ? chacun La "commande" est exécutée tous temps ?

3voto

Tuesday Points 14370

Je pense que votre solution démontre parfaitement la raison : vous sélectionnez "Element information" via l'interface graphique, et le menu contextuel peut prendre quelques millisecondes pour s'afficher. Il ne s'agit pas d'un problème spécifique au Karabiner. E et return sont envoyés instantanément après un clic droit, il se peut que le menu contextuel ne soit pas encore au centre de l'attention et qu'ils ne soient pas dirigés de manière appropriée.

En bref, si vous créez une macro d'interface graphique, vous devrez peut-être attendre que l'interface graphique réponde.

De mon point de vue, trois solutions sont possibles :

  • il suffit d'ajouter un bref délai, comme vous l'avez fait,
  • utiliser un autre outil (par exemple Keyboard Maestro) qui vous permet de faire une pause jusqu'à ce qu'une certaine condition soit remplie, ou
  • utiliser une autre méthode pour activer le résultat souhaité, c'est-à-dire quelque chose qui ne repose pas sur l'interface graphique au niveau de l'utilisateur, comme AppleScript (bien que je ne sache pas si une telle option existe pour cet objectif spécifique).

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X