2 votes

Est-il possible de modifier le paramètre "Ignorer le pavé tactile intégré lorsque la souris est présente" à l'aide d'un raccourci clavier ?

J'aime utiliser mon MacBook avec une souris USB la plupart du temps, et je garde l'option "Ignorer le trackpad intégré lorsque la souris ou le trackpad sans fil est présent" cochée pour éviter de déplacer accidentellement le curseur pendant la frappe. Cependant, il est parfois utile de le réactiver pour certaines tâches, et j'aimerais pouvoir le faire avec un raccourci clavier.

J'ai essayé d'enregistrer le processus d'activation/désactivation avec Automator, mais lorsque je copie le script résultant et que je l'exécute, il va jusqu'aux paramètres d'accessibilité et me donne ensuite une erreur de syntaxe disant 'Can not click checkbox 3 of window "Accessibility" of application process "System Preferences"'.

J'ai également essayé de définir "USBMouseStopsTrackpad" dans les valeurs par défaut à 0 et 1 dans le terminal, mais cela ne semble rien faire. Je peux voir que cela change à 0 ou 1 lorsque je coche/décoche la case, donc je suis presque certain d'avoir la bonne option, mais rien ne se passe lorsque je le change.

Je m'excuse si c'est vraiment évident et que je ne le vois pas ! Je ne suis pas encore très familier avec cette machine. Je suis au courant de cette question :

Est-il possible de désactiver le trackpad dans OS X avec un raccourci clavier ?

mais je ne pense pas qu'il s'agisse d'un doublon car j'essaie de faire quelque chose de légèrement différent.

2voto

user3439894 Points 52496

Cela peut être fait nativement sans qu'aucune tierce partie ne soit nécessaire, simplement et facilement en utilisant AppleScript et Scripting de l'interface utilisateur .

Le site exemple AppleScript code peut être mis en œuvre de plusieurs manières différentes, comme une script , un AppleScript application ou en tant que Automator service ce dernier pouvant avoir un raccourci clavier qui lui est attribué.

Plus précisément, comment mettre en œuvre en tant que Automator service a été couvert plus d'une fois qu'un Google La recherche devrait fournir une réponse sur la façon de le faire. Je sais que j'ai écrit des instructions pour cela plus de fois que je ne peux m'en souvenir.

Les éléments suivants exemple AppleScript code fonctionne pour moi et permet de basculer le " Ignorer le trackpad intégré lorsque la souris ou le trackpad sans fil est présent : " boîte à cocher :

if running of application "System Preferences" then
    try
        tell application "System Preferences" to quit
    on error
        do shell script "killall 'System Preferences'"
    end try
end if
repeat while running of application "System Preferences" is true
    delay 0.1
end repeat
tell application "System Preferences"
    reveal anchor "Mouse" of pane id "com.apple.preference.universalaccess"
    delay 1
    tell application "System Events"
        click checkbox 1 of group 1 of window 1 of application process "System Preferences"
    end tell
    quit
end tell
  • Notez que le valeur de la delay commandes peuvent avoir besoin d'être ajustées pour votre système, et ou des delay commandes peut ou non être nécessaire. Ajustez valeurs de et ou ajouter/supprimer le delay commandes le cas échéant.

  • Ceci a été testé et fonctionne sous MacOS High Sierra Cependant, notez que selon la version de l'application OS X/MacOS que vous exécutez, le click checkbox ... ligne de code peut devoir être ajustée en fonction de la version de l'application OS .

Par exemple, avec MacOS Catalina que vous auriez besoin d'utiliser :

click checkbox 2 of tab group 1 of group 1 of window 1 of application process "System Preferences"


Note : Le <em>exemple </em><strong>AppleScript </strong><em>code </em>est juste cela et ne contient pas de <em>traitement des erreurs </em>le cas échéant. C'est à l'utilisateur qu'il incombe d'ajouter toute <em>gestion des erreurs </em>selon ce qui est approprié, nécessaire ou souhaité. Consultez le <a href="https://developer.apple.com/library/archive/documentation/AppleScript/Conceptual/AppleScriptLangGuide/reference/ASLR_control_statements.html#//apple_ref/doc/uid/TP40000983-CH6g-129232" rel="nofollow noreferrer"><strong>essayez </strong></a><em>déclaration </em>et <a href="https://developer.apple.com/library/archive/documentation/AppleScript/Conceptual/AppleScriptLangGuide/reference/ASLR_control_statements.html#//apple_ref/doc/uid/TP40000983-CH6g-129657" rel="nofollow noreferrer"><strong>erreur </strong></a><em>déclaration </em>dans le <a href="https://developer.apple.com/library/archive/documentation/AppleScript/Conceptual/AppleScriptLangGuide/introduction/ASLR_intro.html" rel="nofollow noreferrer"><strong>Guide du langage AppleScript </strong></a>. Voir aussi, <a href="https://developer.apple.com/library/archive/documentation/AppleScript/Conceptual/AppleScriptLangGuide/reference/ASLR_error_xmpls.html#//apple_ref/doc/uid/TP40000983-CH221-SW1" rel="nofollow noreferrer"><strong>Travailler avec des erreurs </strong></a>. En outre, l'utilisation de la <a href="https://developer.apple.com/library/archive/documentation/AppleScript/Conceptual/AppleScriptLangGuide/reference/ASLR_cmds.html#//apple_ref/doc/uid/TP40000983-CH216-SW10" rel="nofollow noreferrer"><strong>retarder </strong></a><em>commande </em>peut être nécessaire entre les événements, le cas échéant, par ex. <code>delay 0.5</code> avec le <em>valeur </em>de la <em>retarder </em>définis de manière appropriée.

0 votes

Pourquoi votre script quitte-t-il d'abord les Préférences Système ?

1 votes

@JakeRobb, Il s'éteint d'abord Préférences du système parce qu'il utilise Scripting de l'interface utilisateur et si Préférences du système est déjà ouvert et à un feuille modale ce qui n'est pas le cas, alors sans elle, l'Union européenne ne peut pas se permettre d'avoir des problèmes. script échouerait. Cela dit, il est vrai que les chances que cela se produise sont minces, mais il est toujours préférable d'écrire code qui peut gérer les possibilités.

1voto

Joonas Points 2368

La macro est un peu bancale, mais c'est tout à fait faisable.

Je recommande d'utiliser Maestro du clavier pour ça. C'est un peu comme Automator..... Il n'est pas gratuit, mais il existe une version d'essai qui en vaut vraiment la peine. Vous pouvez aussi faire la même chose avec Automator ou Applescript, mais c'est beaucoup plus simple avec KBM.

KBM a quelques grandes actions quand il s'agit de naviguer dans le gui :

  • Pause jusqu'à ce que
    • L'action Pause jusqu'à met en pause jusqu'à ce que les critères des conditions soient remplis.
  • Appuyez sur un bouton
    • L'action Appuyer sur un bouton permet d'appuyer sur un bouton nommé dans la fenêtre avant.
  • Sélectionner ou afficher un élément de menu
    • L'action Sélectionner ou Afficher un élément de menu sélectionne un élément de menu OU affiche (ouvre) un menu dans la barre de menu principale.
  • Insérer du texte en tapant
    • L'action Insérer du texte en tapant convertit le texte brut (simple) en frappes et tape ensuite chacune d'entre elles individuellement. Elle ne fonctionne qu'avec les caractères qui peuvent être tapés au clavier avec une ou deux frappes (par exemple, Option-e e tape généralement é, et Keyboard Maestro peut dupliquer cette frappe).
  • Tapez une frappe
    • L'action Taper une touche vous permet de taper une seule touche, à peu près n'importe quelle touche que vous pouvez taper sur le clavier.
  • Déplacer ou cliquer la souris
    • L'action Déplacer ou cliquer la souris vous permet de déplacer, de cliquer ou de déplacer et de cliquer la souris à l'aide de n'importe quel bouton de la souris, et éventuellement de la faire glisser.
    • C'est une petite chose, mais je pense que c'est génial qu'il puisse restaurer l'emplacement de la souris une fois l'action terminée. Cette option est cependant un peu cachée.

Les étapes pour réaliser l'action ainsi que des explications lumineuses :

Photo des étapes de la macro (Lien)

Ce n'est pas la macro la plus rapide (~3secondes), mais c'est bien mieux que de plonger dans les menus manuellement.

Lorsque vous réalisez cette macro, veillez à exécuter la macro inachevée après chaque étape pour vous assurer que tout est exactement comme il faut.

  1. Nom de l'action : Activate a Specific Application

    • Activez : System Preferences
    • Ouvre les préférences du système

  2. Nom de l'action : Pause Until

    • Nouvelle condition : Menu Condition
    • Un élément de menu : avec ce nom Accessibility est activé
    • Cela permet plus ou moins de s'assurer que la fenêtre est active et que l'accessibilité est un élément de menu vers lequel vous pouvez naviguer.

  3. Nom de l'action : Move a Window

    • Déplacez-vous vers : 0 0
    • Cela permet de s'assurer que la fenêtre des préférences se trouve sur votre écran principal. C'est important parce que si, à un moment donné, vous faites glisser manuellement la fenêtre vers votre écran secondaire, toutes les actions qui dépendent des coordonnées échoueront sans cette action et la prochaine action "Déplacer une fenêtre".

  4. Nom de l'action : Select or Show a Menu Item

    • Sélectionnez le menu dans : System Preferences
    • Titre du menu : View
    • Élément de menu Accessibility
    • Vous pouvez aussi simplement cliquer sur Menu en haut à gauche de cette action pour choisir l'élément de menu à partir de là, tant que les Préférences Système sont ouvertes. Il est ainsi très facile de simuler un clic sur n'importe quel élément de menu.

  5. Nom de l'action : Pause

    • Pause pour : 1 secondes.
    • C'est un peu un mystère. Je voulais utiliser la fonction "pause jusqu'à ce que le titre de la fenêtre soit "Accessibilité", qui fonctionne si vous allez à la page Accessibilité dans les préférences système et que vous vérifiez l'action. KBM dit que la valeur est vraie quand vous êtes là. Cependant, la macro n'a pas fonctionné lorsque je l'ai exécutée. J'ai également essayé l'action 'Pause jusqu'à la condition du pixel' et cela n'a pas marché non plus - je suppose que la condition est devenue vraie avant que toute interaction soit possible L'intérêt d'utiliser l'action 'Pause jusqu'à' est de s'assurer que ce que nous voulons faire ensuite se déclenche au bon moment. Lorsque vous utilisez une pause statique ou pas de pause du tout, il est possible que l'action prenne parfois plus de temps que d'habitude et que la touche simulée disparaisse dans l'éther et que la macro reste bloquée ou, dans le pire des cas, qu'elle fasse quelque chose de totalement différent, comme envoyer une alerte au missile à tous les Hawaïens, par exemple. Les quelques endroits où j'ai utilisé une pause statique ne devraient pas poser de problème, puisqu'ils se trouvent tous sur la même page de la même fenêtre. ne devrait pas Il n'y a pas de problèmes bizarres causés par ces actions, mais si elles ne font pas ce qu'elles sont censées faire : augmentez le délai statique. Vous pouvez également ajouter une "Pause" entre certaines des autres actions qui ne sont pas séparées par un délai, si cela ne semble pas fonctionner. Les machines plus lentes nécessitent généralement un délai plus important.

  6. Nom de l'action : Type a Keystroke

    • Simulez la frappe du clavier : Cmd+F
    • Cliquez sur le bouton Simuler la saisie des touches et appuyez sur les touches de raccourci.
    • Si cette fenêtre est déjà active, la position de la recherche est définie par défaut, de sorte que la prochaine frappe se fasse au bon endroit.

  7. Nom de l'action : Move a Window

    • Changement Move to à Center
    • Cela permet de s'assurer que toutes les actions utilisant des coordonnées touchent les bons endroits.

  8. Nom de l'action : Type a Keystroke

    • Simulez la frappe du clavier : Tab
    • Vous pouvez le sélectionner dans la liste déroulante ou le saisir.
    • Active la liste sur le côté gauche de System Preferences > Accessibility fenêtre.

  9. Nom de l'action : Pause Until

    • Nouveau Condition : Pixel Condition
    • Cliquez sur le bouton Get
      • Il vous donnera 5 secondes pour positionner votre souris sur la couleur.
      • Activez la fenêtre et passez votre souris n'importe où au-dessus du bord bleu pour obtenir cette couleur.
      • enter image description here
    • Cela permet simplement de s'assurer que l'action suivante est déclenchée au bon moment.

  10. Nom de l'action : Type a Keystroke

    • Simulez la frappe du clavier : End
    • Vous pouvez le sélectionner dans la liste déroulante ou le saisir.
    • Active la liste sur le côté gauche de System Preferences > Accessibility fenêtre.

  11. Nom de l'action : Type a Keystroke

    • Simulez la frappe du clavier : Alt+Down Arrow
    • Cliquez sur le bouton Simuler la saisie des touches et appuyez sur les touches de raccourci.
    • Ce menu de gauche peut conserver le dernier élément visité la prochaine fois que vous l'ouvrirez. Nous faisons donc cela juste pour nous assurer que le premier élément est sélectionné, sinon la prochaine pause jusqu'à pourrait échouer occasionnellement.
  12. Nom de l'action : Pause Until

    • Nouvelle condition : Pixel Codition
    • Encore une fois, la même chose qu'avec la dernière condition Pause jusqu'au pixel. Appuyez sur le bouton Get active la fenêtre d'accessibilité et choisit une couleur dans l'arrière-plan de l'élément actif.
    • enter image description here
    • Cela permet simplement de s'assurer que l'action suivante est déclenchée au bon moment.

  13. Action : Move or Click Mouse

    • Par rapport à la Absolute position

    • Cliquez sur le menu engrenage dans le coin supérieur droit de l'action et sélectionnez Restore Mouse Location .

    • Appuyez sur le bouton Get et passez la souris sur le bouton "Mouse & Trackpad".

    • J'ai choisi d'utiliser la position relative plutôt que la position absolue, car les conditions de Pixel ne peuvent pas être relatives à la fenêtre actuelle... Cela n'a pas vraiment d'importance.

    • enter image description here

  14. Nom de l'action : Pause Until

    • Nouvelle condition : Pixel Condition
    • Encore une fois, la même chose qu'avec la dernière condition Pause jusqu'au pixel. Appuyez sur le bouton Get active la fenêtre d'accessibilité et choisit une couleur dans l'arrière-plan de l'élément actif.
    • enter image description here
    • Cela permet simplement de s'assurer que l'action suivante est déclenchée au bon moment.

  15. Action : Move or Click Mouse

    • Par rapport à la Absolute position

    • Cliquez sur le menu engrenage dans le coin supérieur droit de l'action et sélectionnez Restore Mouse Location .

    • Appuyez sur le bouton Get et survolez le bouton Ignore built-in tackpad when mouse or wireless trackpad is present

    • J'ai choisi d'utiliser la position relative plutôt que la position absolue, car les conditions de Pixel ne peuvent pas être relatives à la fenêtre actuelle... Cela n'a pas vraiment d'importance.

    • enter image description here

  16. Nom de l'action : Pause

    • Pause pour .6 secondes
    • Vous pouvez allonger ce délai si vous avez l'impression de ne pas voir la valeur changer et que vous aimeriez le faire... Ce délai a été ajouté pour cette raison, mais il passe assez vite. Essayez quelque chose comme 1 seconde...

  17. Nom de l'action : Quit a Specific Application

    • Démissionner : System Preferences .
    • Vous pouvez désactiver cette action à des fins de test.

0 votes

Vous avez dit : "Je suis pratiquement sûr que les solutions en ligne de commande sont bloquées par SIP". defaults pour modifier un la valeur de la clé dans un .plist ne parvient pas à atteindre l'objectif. Le site defaults commande a été rendu presque inutile à partir de la version 10.8 d'OS X, où des changements majeurs ont été apportés qui en ont empêché l'utilisation efficace par rapport aux anciennes versions d'OS X. Il peut encore être utilisé dans certains cas, mais pas autant qu'avant, où il prenait immédiatement effet sans devoir nécessairement tuer un processus pour que le changement soit pris en compte.

0 votes

@user3439894, je suppose que cela ne fonctionne pas dans cette situation puisque vous n'avez pas posté cela comme réponse ?

0 votes

Je n'ai même pas essayé d'utiliser defaults dans ce cas d'utilisation. Ce que je voulais dire, c'est que la déclaration que j'ai citée dans mon commentaire précédent est erronée ! Le SIP ne bloque pas le defaults commande de prendre des mesures sur .plist fichiers dans ~/Library/Preferences . Vous devriez lire : À propos de la protection de l'intégrité du système sur votre Mac

1voto

Andre Azzolini Points 11

Je ne peux pas commenter la réponse de @user3439894 en raison d'une réputation insuffisante, mais la ligne correcte pour OS X Catalina est :

click checkbox 2 of tab group 1 of group 1 of window 1 of application process "System Preferences"

Notez la partie "... du groupe d'onglets 1 ...", qui est maintenant nécessaire.

0 votes

Pourquoi ne pas éditer le message en question. Les commentaires sont pour les choses qui ne sont pas claires, il semble que vous pouvez faire cette modification / ajout en utilisant la commande éditer.

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