Wie erhöhe ich die Cursorgröße programmgesteuert? Ich weiß, wie man es manuell macht . Gibt es ein Skript, das dies über die Befehlszeile tun kann, anstatt ein AppleScript, das dies über die GUI ausführt?
Ich nehme viele Anpassungen an meinem Mac vor, erstelle aber auch ständig neue Benutzer. Um Zeit zu sparen, möchte ich bestimmte Anpassungen programmgesteuert vornehmen.
Leider hat der Befehlszeilenbefehl defaults
, der read
und/oder write
der Wert des mouseDriverCursorSize
Schlüssels in der com.apple.universalaccess
.plist- Datei, der write
Befehl , z. B. defaults write com.apple.universalaccess mouseDriverCursorSize 2.5
keine sofortige Wirkung und kann tatsächlich überschrieben werden, bevor die Änderung wirksam werden kann. Hinweis: Der mouseDriverCursorSize
Schlüssel in com.apple.universalaccess
der .plist- Datei ist nicht vorhanden, es sei denn, der Standardwert wurde zuvor geändert.
Während Sie sagten, Sie wollten nicht die GUI- Route mit z. B. AppleScript gehen , wie wäre es, wenn Sie den Unterschied aufteilen und es von der Befehlszeile aus tun, indem Sie den AppleScript- Codeosascript
verarbeiten , der die Änderung von System Preferences vornimmt , aber ohne unterbrochen zu werden über die Benutzeroberfläche der Systemeinstellungen . Angenommen, die Dock-Kachel der Systemeinstellungen ist immer noch vorhanden, wie es standardmäßig der Fall ist, alles, was Sie sehen werden, ist, dass die Dock-Kachel der Systemeinstellungen einmal springt und keine Benutzeroberfläche der Systemeinstellungen . (Dies setzt voraus, dass es von Anfang an nicht geöffnet war.)
Wenn das akzeptabel ist , erledigt der folgende AppleScript- Code, der als ausführbare Befehlszeilendatei gespeichert ist , die Aufgabe:
theCursorSize
entspricht dem, auf den mein System derzeit eingestellt ist.#!/usr/bin/osascript
-- # set theCursorSize between 1.0 and 4 (Valid intermediate values may run out 12 decimal places.)
set theCursorSize to 1.388884782791
-- # Get the system minor version number, as an integer.
set theSystemVersion to system version of (system info)
set TID to AppleScript's text item delimiters
set AppleScript's text item delimiters to {"."}
set theMinorSystemVersion to text item 2 of theSystemVersion as integer
set AppleScript's text item delimiters to TID
-- # Change the size of the mouse cursor.
tell application "System Preferences"
reveal anchor "Seeing_Display" of pane id "com.apple.preference.universalaccess"
delay 0.5 -- # Modify as/if necessary. Value is in seconds as a decimal number.
tell application "System Events"
if theMinorSystemVersion is equal to 8 then
set value of value indicator 1 of slider 2 of group 1 of window "Accessibility" of application process "System Preferences" to theCursorSize
else if theMinorSystemVersion is equal to 9 then
set value of value indicator 1 of slider 2 of window "Accessibility" of application process "System Preferences" to theCursorSize
else if theMinorSystemVersion is greater than 9 and theMinorSystemVersion is less than 13 then
set value of value indicator 1 of slider 1 of window "Accessibility" of application process "System Preferences" to theCursorSize
end if
end tell
quit
end tell
Hinweis: Wie codiert funktioniert dieses Skript mit OS X 10.8 bis macOS 10.12 . Ich habe dies nicht unter macOS High Sierra getestet , aber wenn sich nichts zwischen macOS 10.12 und macOS 10.13 mit diesem bestimmten Objekt geändert hat , dann kann das less than 13 then
Codesegment in geändert werden less than 14 then
, oder wenn Sie es vorziehen, kürzen Sie die Codezeile auf nur:
else if theMinorSystemVersion is greater than 9 then
Um eine ausführbare Befehlszeilendatei zu erstellen , die den obigen AppleScript- Code enthält, gehen Sie in Terminal wie folgt vor :
touch cmcs
open cmcs
cmcs
Dokument ein.theCursorSize
auf Ihre bevorzugte Cursorgröße ein.Zurück im Terminal cmcs
ausführbar machen :
chmod u+x cmcs
Jetzt kann die cmcs
ausführbare Befehlszeilendatei ausgeführt werden, indem Sie Folgendes eingeben:./cmcs
cmcs
ausführbare Befehlszeilendatei an einem Ort platzieren, der in der PATH
Umgebungsvariable definiert ist , können Sie das vorangestellte weglassen ./
und oder müssen eingeben /path/to/cmcs
. Beachten Sie auch, dass die Benennung von, zur Änderung der Mauszeigergrößecmcs
dient und ansonsten beliebig sein kann.Zusätzliche Bemerkungen:
Der Wert von mouseDriverCursorSize
key in der com.apple.universalaccess
.plist- Datei wird auf die 6. Dezimalstelle gerundet gespeichert, zB 1.388884782791
wird gespeichert als1.388885
Um den vollen Wert zu erhalten , führen Sie im Skript - Editor das folgende Skript aus :
set theSystemVersion to system version of (system info)
set TID to AppleScript's text item delimiters
set AppleScript's text item delimiters to {"."}
set theMinorSystemVersion to text item 2 of theSystemVersion as integer
set AppleScript's text item delimiters to TID
tell application "System Preferences"
reveal anchor "Seeing_Display" of pane id "com.apple.preference.universalaccess"
delay 0.5 -- # Modify as/if necessary. Value is in seconds as a decimal number.
tell application "System Events"
if theMinorSystemVersion is equal to 8 then
get value of value indicator 1 of slider 2 of group 1 of window "Accessibility" of application process "System Preferences"
else if theMinorSystemVersion is equal to 9 then
get value of value indicator 1 of slider 2 of window "Accessibility" of application process "System Preferences"
else if theMinorSystemVersion is greater than 9 and theMinorSystemVersion is less than 13 then
get value of value indicator 1 of slider 1 of window "Accessibility" of application process "System Preferences"
end if
end tell
quit
end tell
Update zum Adresskommentar:
Wenn Sie dies jedes Mal ausführen möchten, wenn sich ein Benutzer anmeldet , würde ich Folgendes tun:
Erstellen Sie in Automator einen neuen Anwendungsworkflow und fügen Sie ihm eine Aktion „AppleScript ausführen“ hinzu.
Ersetzen Sie in der Aktion „AppleScript ausführen“ und durch alle außer dem shebang ( ) des ersten AppleScript- Codes . Der Shebang ist nicht erforderlich, da dies in einer Run AppleScript- Aktion im Vergleich zu einer Run Shell Script- Aktion ausgeführt wird .(* Your script goes here *)
return input
#!/usr/bin/osascript
Speichern Sie den Workflow der Automator- Anwendung als zB Set Mouse Cursor Size im Ordner /Applications .
Führen Sie in den Systemeinstellungen zwei Dinge aus ...
Wählen Sie unter Benutzer & Gruppen > Zielbenutzer > Anmeldeelemente aus und fügen Sie Mauszeigergröße festlegen zur Liste der Anmeldeelemente hinzu .
Fügen Sie unter Sicherheit & Datenschutz > Datenschutz > Eingabehilfen Größe des Mauszeigers festlegen zur Liste Apps unten erlauben, Ihren Computer zu steuern hinzu .
Dann wird jedes Mal, wenn sich der Benutzer anmeldet , das Set Mouse Cursor Size ausgeführt und wie programmiert ausgeführt.
Hier ist der Javascript-Code für macOS Monterey:
function fn() {
const cursorSizeSmall = 1
const cursorSizeLarge = 4
const isRunningSystemPreferences = Application('System Preferences').running()
Application('System Preferences').panes.byId('com.apple.preference.universalaccess').anchors.byName('Seeing_Cursor').reveal()
const process = Application('System Events').processes.byName('System Preferences')
while (process.windows.length == 0) {}
const window = process.windows[0]
while (window.groups.length == 0) {}
const group = window.groups[0]
while (group.tabGroups.length == 0) {}
const tabGroup = group.tabGroups[0]
while (tabGroup.sliders.length == 0) {}
const slider = tabGroup.sliders[0]
if (slider.value() == cursorSizeSmall) {
slider.value = cursorSizeLarge
} else {
slider.value = cursorSizeSmall
}
if (!isRunningSystemPreferences) {
Application('System Preferences').quit()
}
}
fn()
Sie können dieses Snippet in der App "Script Editor" verwenden, um ein neues JXA-Skript zu erstellen (stellen Sie sicher, dass die Sprache auf JavaScript eingestellt ist):
oder verwenden Sie die in Monterey eingeführte Shortcuts-App ( Link ).
osascript -l JavaScript FILE.js
auch funktionieren nehme ich an.
Grau