Ich habe die ursprüngliche Karabiner-App 10.22 verwendet und konnte alle Aktionen über Apples Accessibility Inspector sehr genau einschränken, um für bestimmte Dialogfenster zu funktionieren.
Mit Karabinerelementen ist dies nicht mehr möglich.
Um also (in Safari) auf den Punkt "Element Information" des Kontextmenüs zu klicken (den ich sehr oft verwende), habe ich diesen Code in "Complex Modifications" ausprobiert:
"to": [ { "pointing_button": "button2" },
{ "key_code": "e" },
{ "key_code": "return_or_enter"} ]
Was funktionierte , aber alternativ nur das Kontextmenü öffnete / zeigte oder "Elementinformationen" tatsächlich ausführte.
Durch Experimentieren habe ich eine Problemumgehung gefunden, die meistens für mich funktioniert:
"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"} ]
Meine Fragen:
Warum werden nicht alle "Befehle" im ersten Codebeispiel in der richtigen Reihenfolge (oder: nur abwechselnd) ausgeführt und (interessanter:) wie können Sie sicherstellen, dass jeder "Befehl" jedes Mal ausgeführt wird ?
Ich denke, Ihre Problemumgehung zeigt den Grund perfekt: Sie wählen "Elementinformationen" über die GUI aus, und das Aufrufen des Kontextmenüs kann einige Millisekunden dauern. Dies ist kein spezielles Problem mit Karabiner – wenn die Tastencodes Eund returnsofort nach dem Rechtsklick gesendet werden, ist das Kontextmenü möglicherweise noch nicht im Fokus und sie werden nicht richtig geleitet.
Kurz gesagt, wenn Sie ein GUI-Makro erstellen, müssen Sie möglicherweise warten, bis die GUI antwortet.
Aus meiner Sicht gibt es drei mögliche Lösungen:
Matt Sephton