Ich verwende mein MacBook meistens gerne mit einer USB-Maus und lasse die Option "Integriertes Trackpad ignorieren, wenn Maus oder drahtloses Trackpad vorhanden ist" aktiviert, um zu vermeiden, dass der Cursor beim Tippen versehentlich bewegt wird. Gelegentlich ist es jedoch nützlich, es für bestimmte Aufgaben wieder einzuschalten, und ich möchte dies mit einer Tastenkombination tun können.
Ich habe versucht, den Vorgang des Ein- und Ausschaltens mit Automator aufzuzeichnen, aber wenn ich das resultierende Skript kopiere und ausführe, gelangt es bis zu den Einstellungen für die Barrierefreiheit und gibt mir dann einen Syntaxfehler mit der Meldung „Kann nicht auf das Kontrollkästchen 3 von klicken Fenster „Barrierefreiheit“ des Anwendungsprozesses „Systemeinstellungen“.
Ich habe auch versucht, "USBMouseStopsTrackpad" in den Standardeinstellungen im Terminal auf 0 und 1 zu setzen, aber es scheint nichts zu tun. Ich kann sehen, dass sich dies auf 0 oder 1 ändert, wenn ich das Kontrollkästchen aktiviere/deaktiviere, also bin ich mir ziemlich sicher, dass ich die richtige Option habe, aber nichts passiert, wenn ich es ändere.
Entschuldigung, wenn das wirklich offensichtlich ist und ich es einfach nicht sehe! Ich kenne mich mit dieser Maschine noch nicht so gut aus. Mir ist diese Frage bekannt:
Ist es möglich, das Trackpad in OS X mit einer Tastenkombination auszuschalten?
aber ich glaube nicht, dass es ein Duplikat ist, da ich versuche, etwas etwas anderes zu machen.
Dies kann nativ ohne Drittanbieter erfolgen , einfach und unkompliziert mit AppleScript und UI Scripting .
Der beispielhafte AppleScript- Code kann auf verschiedene Arten implementiert werden, als Skript , als AppleScript- Anwendung oder als Automator- Dienst , wobei letzterem eine Tastenkombination zugewiesen werden kann.
Insbesondere die Implementierung als Automator- Dienst wurde mehr als genug behandelt, sodass eine Google- Suche eine Antwort darauf liefern sollte, wie dies zu tun ist. Ich weiß, dass ich öfter Anweisungen dafür geschrieben habe, als ich mich erinnern kann.
Der folgende Beispiel -AppleScript- Code funktioniert für mich und schaltet das Kontrollkästchen „ Ignore built-in trackpad when mouse or wireless trackpad is present: “ um :
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
Beachten Sie, dass der Wert der delay
Befehle möglicherweise an Ihr System angepasst werden muss und dass möglicherweise zusätzliche delay
Befehle erforderlich sind oder nicht. Passen Sie die Werte von an und fügen Sie die delay
Befehle nach Bedarf hinzu/entfernen Sie sie.
Dies wurde getestet und funktioniert unter macOS High Sierra ; Beachten Sie jedoch, dass je nach Version von OS X/macOS , die Sie ausführen, die click checkbox ...
Codezeile möglicherweise je nach Version des Betriebssystems angepasst werden muss .
Mit macOS Catalina müssten Sie beispielsweise Folgendes verwenden:
click checkbox 2 of tab group 1 of group 1 of window 1 of application process "System Preferences"
Hinweis: Der Beispiel -AppleScript- Code ist genau das und enthält keine Fehlerbehandlung , wie es angebracht sein könnte. Es obliegt dem Benutzer, eine Fehlerbehandlung hinzuzufügen, die angemessen, erforderlich oder gewünscht ist. Sehen Sie sich die try- Anweisung und die error- Anweisung im AppleScript Language Guide an . Siehe auch Arbeiten mit Fehlern . Zusätzlich kann die Verwendung des Verzögerungsbefehls gegebenenfalls zwischen Ereignissen notwendig sein, z. B. mitdelay 0.5
einem geeignet eingestellten Wert der Verzögerung .
Das Makroing ist ein bisschen ruckelig, aber es ist absolut machbar.
Ich würde empfehlen, dafür Keyboard Maestro zu verwenden. Es ist ein bisschen wie Automator .... Nicht kostenlos, aber es gibt eine Testversion und es lohnt sich auf jeden Fall. Sie könnten dasselbe auch in Automator oder Applescript tun, aber in KBM ist es viel einfacher.
KBM hat einige großartige Aktionen, wenn es um die Navigation in der GUI geht:
Nicht das schnellste Makro aller Zeiten (~3 Sekunden), aber es schlägt sicher besser, manuell in die Menüs einzutauchen.
Stellen Sie beim Erstellen dieses Makros sicher, dass Sie das unfertige Makro nach jedem Schritt ausführen, um sicherzustellen, dass alles genau so ist, wie es sein sollte.
Activate a Specific Application
System Preferences
Öffnet die Systemeinstellungen
Pause Until
Menu Condition
Accessibility
wird aktiviertDies stellt mehr oder weniger sicher, dass das Fenster aktiv ist und Barrierefreiheit ein Menüpunkt ist, zu dem Sie navigieren können.
Move a Window
0
↓0
Dadurch wird sichergestellt, dass sich das Einstellungsfenster in Ihrem Hauptbildschirm befindet. Es ist nur wichtig, denn wenn Sie das Fenster zu irgendeinem Zeitpunkt manuell auf Ihren sekundären Bildschirm ziehen, würden alle Aktionen, die auf Koordinaten angewiesen sind, ohne diese und die nächste Aktion "Fenster verschieben" fehlschlagen.
Select or Show a Menu Item
System Preferences
View
Accessibility
Sie können auch einfach
Menu ▾
oben links auf diese Aktion klicken, um den Menüpunkt von dort auszuwählen, solange die Systemeinstellungen geöffnet sind. Das macht es super einfach, das Klicken auf einen beliebigen Menüpunkt zu simulieren.
Pause
1
Sekunden.Das ist ein bisschen mysteriös. Ich wollte eine Pause verwenden, bis der Fenstertitel „Barrierefreiheit“ lautet, was funktioniert, wenn Sie in den Systemeinstellungen zur Seite „Barrierefreiheit“ gehen und die Aktion überprüfen. KBM sagt, der Wert ist wahr, wenn Sie dort sind. Es schlug jedoch immer wieder fehl, als ich das Makro tatsächlich ausführte. Ich habe auch die Bedingung „Pausieren bis Pixel“ ausprobiert, die ebenfalls fehlgeschlagen ist. Ich schätze, die Bedingung wurde wahr, bevor eine Interaktion möglich war … Der Sinn der Verwendung der Aktion „Pausieren bis“ besteht darin, sicherzustellen, dass alles, was wir als Nächstes tun möchten, tatsächlich ausgelöst wird im richtigen Moment. Wenn Sie eine statische Pause oder überhaupt keine Pause verwenden, besteht die Möglichkeit, dass es gelegentlich länger als gewöhnlich dauert und der simulierte Tastendruck einfach in den Äther geht und das Makro hängen bleibt oder im schlimmsten Fall: Es macht tatsächlich etwas ganz anderes, sendet zum Beispiel eine Raketenwarnung an alle Hawaiianer oder so. Die wenigen Stellen, an denen ich eine statische Pause verwendet habe, sollten in Ordnung sein, da sie sich alle auf derselben Seite desselben Fensters befindenEs sollte keine seltsamen Probleme geben, die dadurch verursacht werden, aber wenn es nicht das tut, was es tun soll: Erhöhen Sie die statische Verzögerung. Sie können auch zwischen einigen anderen Aktionen, die nicht durch eine Verzögerung getrennt sind, eine Pause einfügen, wenn dies nicht zu funktionieren scheint. Langsamere Maschinen erfordern normalerweise eine größere Verzögerung.
Type a Keystroke
Cmd+F
Wenn dieses Fenster bereits aktiv ist, wird die Position standardmäßig auf die Suche gesetzt, sodass der nächste Tastendruck an der richtigen Stelle erfolgt
Move a Window
Move to
zuCenter
Dadurch wird sichergestellt, dass alle Aktionen, die Koordinaten verwenden, die richtigen Punkte treffen.
Aktionsname:Type a Keystroke
Tab
Aktiviert die Liste auf der linken Seite des
System Preferences > Accessibility
Fensters.
Aktionsname:Pause Until
Pixel Condition
Dies stellt nur sicher, dass die nächste Aktion zum richtigen Zeitpunkt ausgelöst wird.
Aktionsname:Type a Keystroke
End
Aktiviert die Liste auf der linken Seite des
System Preferences > Accessibility
Fensters.
Aktionsname:Type a Keystroke
Alt+Down Arrow
Aktionsname:Pause Until
Pixel Condition
Dies stellt nur sicher, dass die nächste Aktion zum richtigen Zeitpunkt ausgelöst wird.
Aktion:Move or Click Mouse
Absolute position
Restore Mouse Location
.Ich habe mich für relativ zur absoluten Position entschieden, da die Pixelbedingungen nicht relativ zum aktuellen Fenster sein können ... Spielt eigentlich keine Rolle.
Aktionsname:Pause Until
Pixel Condition
Dies stellt nur sicher, dass die nächste Aktion zum richtigen Zeitpunkt ausgelöst wird.
Aktion:Move or Click Mouse
Absolute position
Restore Mouse Location
.Ignore built-in tackpad when mouse or wireless trackpad is present
Ich habe mich für relativ zur absoluten Position entschieden, da die Pixelbedingungen nicht relativ zum aktuellen Fenster sein können ... Spielt eigentlich keine Rolle.
Aktionsname:Pause
.6
Sekunden pausierenMöglicherweise möchten Sie dies verlängern, wenn Sie das Gefühl haben, dass Sie die Wertänderung nicht ganz sehen können, und Sie möchten ... Diese Verzögerung wurde aus diesem Grund hinzugefügt, aber sie vergeht ziemlich schnell. Versuchen Sie so etwas wie 1 Sekunde ...
Quit a Specific Application
System Preferences
.defaults
Werts eines Schlüssels in einer .plist
Datei das Ziel nicht erreicht. Der defaults
Befehl wurde ab OS X 10.8 und später fast nutzlos, wo größere Änderungen vorgenommen wurden, die die effektive Verwendung im Vergleich zu älteren Versionen von OS X unterbrachen. Er kann in einigen Fällen immer noch verwendet werden, aber nicht annähernd so oft wie früher dort zu sein, wo es einmal verwendet wurde, um sofort wirksam zu werden, ohne unbedingt einen Prozess beenden zu müssen, um die Änderung zu übernehmen.defaults
in diesem Anwendungsfall zu verwenden. Der Punkt, den ich machen wollte, ist, dass Ihre Aussage, die ich in meinem vorherigen Kommentar zitiert habe, falsch ist! SIP verhindert nicht, dass der defaults
Befehl Aktionen für .plist
Dateien in ~/Library/Preferences
. Sie sollten lesen: Informationen zum Systemintegritätsschutz auf Ihrem Macdefaults
. Auch ich habe mich darauf konzentriert, eine gute Antwort zu geben, was ich glaube, indem ich gezeigt habe, dass es nativ ohne Drittanbieter möglich ist, einfach und problemlos mit AS- und UI-Scripting.Ich kann die Antwort von @ user3439894 aufgrund unzureichender Reputation nicht kommentieren, aber die richtige Zeile für OS X Catalina lautet:
click checkbox 2 of tab group 1 of group 1 of window 1 of application process "System Preferences"
Beachten Sie das Bit "... of tab group 1 ...", das jetzt notwendig ist.
Jake Robb
Benutzer3439894