Wie kann die Cursorgröße programmgesteuert erhöht werden?

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?

Warum?

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.

Ein weiterer guter Grund, dies programmgesteuert zu tun, besteht darin, einen verschwundenen Cursor mit einem Klick aus dem Dock wieder aktivieren zu können.

Antworten (2)

Leider hat der Befehlszeilenbefehl defaults , der readund/oder writeder Wert des mouseDriverCursorSizeSchlüssels in der com.apple.universalaccess .plist- Datei, der write Befehl , z. B. defaults write com.apple.universalaccess mouseDriverCursorSize 2.5keine 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:

  • Hinweis: Der angezeigte WerttheCursorSize 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
  • Kopieren Sie den obigen AppleScript- Code und fügen Sie ihn in das geöffnete cmcsDokument ein.
  • Stellen Sie den Wert von theCursorSizeauf Ihre bevorzugte Cursorgröße ein.
  • Speichern Sie das Dokument, drücken Sie: ⌘S

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

  • Hinweis: Wenn Sie die 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.388884782791wird 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 .

    • Hinweis: Das Obige gilt für OS X 10.9 und höher. Für OS X 10.8, Eingabehilfen und aktivieren Sie das Kontrollkästchen Zugriff für Hilfsgeräte aktivieren .

Dann wird jedes Mal, wenn sich der Benutzer anmeldet , das Set Mouse Cursor Size ausgeführt und wie programmiert ausgeführt.

ein Kommentar: Sie geben mir ein ausführbares Skript ... aber gibt es eine Möglichkeit, dieses Skript jedes Mal standardmäßig auszuführen, wenn ein Benutzer angemeldet ist, oder so? dh genauso wird mein ~/.bash_profile ausgeführt und macht mein Terminal bunt usw. Gibt es eine Möglichkeit, dieses Skript auch automatisch auszuführen?
@abbood, Bitte lesen Sie den Abschnitt Update to address comment:. am Ende der ursprünglichen Antwort hinzugefügt. um auf deinen Kommentar einzugehen.
Nachdem ich diesen Befehl ausgeführt hatte, sah ich das Symbol im Dock genau wie Sie erwähnt haben, aber der Cursor blieb gleich groß

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):

Geben Sie hier die Bildbeschreibung ein

oder verwenden Sie die in Monterey eingeführte Shortcuts-App ( Link ).

Wie kann dies verwendet/aufgerufen werden?
@nohillside prüfe meine Updates
Großartig. Würde also osascript -l JavaScript FILE.jsauch funktionieren nehme ich an.