Se desideri utilizzare AppleScript per automatizzare la modifica di una serie di preferenze di sistema, allora AppleScript Language Guide è il punto di partenza per imparare a utilizzare AppleScript.
Per quanto riguarda " un elenco di riferimento di elementi di configurazione scriptable " menzionato nei commenti, per quanto ne so, non esiste un elenco di riferimento unificato di elementi in Preferenze di sistema che possono essere configurati utilizzando l'interfaccia utente di AppleScript Scripting. L'elenco, di per sé, è proprio di fronte a te, è l'intera UI delle Preferenze di Sistema e l'interrogazione dell'interfaccia utente tramite Eventi di sistema e UI elements
per ottenere le proprietà dell'oggetto e la loro gerarchia.
Esempi:
tell application "System Events" to get every UI element of window 1 of application process "System Preferences"
tell application "System Events" to get properties of every UI element of window 1 of application process "System Preferences"
tell application "System Events" to get every UI element of scroll area 1 of window 1 of application process "System Preferences"
tell application "System Events" to get properties of every UI element of scroll area 1 of window 1 of application process "System Preferences"
Se hai installato Xcode, puoi utilizzare Accessibility Inspector per ottenere informazioni sugli elementi dell'interfaccia utente e sulla loro gerarchia.
Qualsiasi processo di applicazione che ha la sua has scripting terminology
proprietà impostata su true
dovrebbe avere un dizionario AppleScript che puoi aprire da Script Editor > Window > Libreria e poi esaminare per vedere ciò che è disponibile per lo script direttamente con quella determinata applicazione.
Con una determinata app in esecuzione se si esegue il seguente comando in Script Editor, ad es.
tell application "System Events" to get has scripting terminology of process "System Preferences"
Restituisce true
, tuttavia nel caso di "Preferenze di Sistema" c'è un piccolo insieme di comandi che puoi usare direttamente con esso, tuttavia per fare alcune delle modifiche alle impostazioni che menzioni nel tuo OP, usando AppleScript, tu è necessario utilizzare UI Scripting.
Come puoi vedere dal codice AppleScript di esempio di seguito, nella maggior parte dei casi utilizza UI Scripting ma lo fa senza dover visualizzare l'interfaccia utente delle Preferenze di sistema. Il problema principale con UI Scripting può aggiungere delay
appropriati comandi come necessario in alcuni punti. Questo viene fornito con esperienza ma anche con necessità quando si esegue uno script, ad es. in Script Editor, ed errori. Inserire la delay
e il valore appropriato per esso diventa una seconda natura con il tempo nella programmazione di UI Scripting.
Ecco un esempio di codice AppleScript, che potresti trovare utile per raggiungere il tuo obiettivo di automatizzare le impostazioni per un nuovo utente.
Si noti che mentre questo ha funzionato sul mio sistema con macOS 10.12.5 così com'è e senza problemi, YMMY e alcune regolazioni potrebbero dover essere apportate eo gestione degli errori aggiuntiva, ecc.
tell application "System Preferences"
if running then
quit
delay 0.5
end if
-- # General
reveal pane id "com.apple.preference.general"
delay 0.5
tell application "System Events"
-- # Automatically hide and show the menu bar
click checkbox 4 of window 1 of application process "System Preferences"
end tell
-- # Dock
reveal pane id "com.apple.preference.dock"
delay 0.5
tell application "System Events"
-- # Size (Valid values, 0.0 to 1.0)
set value of value indicator 1 of slider 1 of window 1 of application process "System Preferences" to 0.25
-- # Magnification
if value of checkbox "Magnification:" of window 1 of application process "System Preferences" is equal to 0 then
click checkbox "Magnification:" of window 1 of application process "System Preferences"
end if
-- # Min Max (Valid values, 0.0 to 1.0)
set value of value indicator 1 of slider 2 of window 1 of application process "System Preferences" to 1.0
-- # Automatically hide and show the Dock
click checkbox 2 of window 1 of application process "System Preferences"
end tell
tell current application
-- # Backup the original com.apple.dock.plist file before removing all default apps from the Dock.
do shell script "cp -a $HOME/Library/Preferences/com.apple.dock.plist $HOME/Library/Preferences/com.apple.dock.ORIGINAL.plist"
-- # Remove all default apps from the Dock. This removes everything but Finder and Trash, neither of which can be removed.
do shell script "defaults delete com.apple.dock persistent-apps; defaults delete com.apple.dock persistent-others; killall Dock"
-- # To restore the default Dock Tiles, use the following command.
-- do shell script "defaults delete com.apple.dock; killall Dock"
end tell
-- # The following commented code, between '(*' and '*)' directly manipulates the included Dock preferences.
-- # This is a more direct way then using the UI Scripting method on the Dock preferences above.
-- # See the System Events AppleScript Dictionary.
(*
tell application "System Events"
tell dock preferences
set minimize effect to genie
set magnification size to 1.0
set dock size to 0.5
set autohide to true
set animate to true
set magnification to true
set screen edge to bottom
end tell
end tell
*)
-- # Keyboard > Shortcuts
reveal anchor "shortcutsTab" of pane id "com.apple.preference.keyboard"
delay 0.5
tell application "System Events"
-- # Spotlight
select row 7 of table 1 of scroll area 1 of splitter group 1 of tab group 1 of window 1 of application process "System Preferences"
-- # Show Spotlight Search
click checkbox 1 of UI element 1 of row 1 of outline 1 of scroll area 2 of splitter group 1 of tab group 1 of window 1 of application process "System Preferences"
end tell
-- # Mouse
reveal pane id "com.apple.preference.mouse"
delay 0.5
tell application "System Events"
try
-- # Apple Magic Mouse
-- # Point & Click
click radio button 1 of tab group 1 of window 1 of application process "System Preferences"
-- # Scroll direction: Natural
click checkbox 1 of tab group 1 of window 1 of application process "System Preferences"
end try
try
-- # Generic Mouse
-- # Scroll direction: Natural
click checkbox 1 of window 1 of application process "System Preferences"
end try
end tell
quit
end tell
-- # Notify the User, changes have been made.
tell current application
display dialog "The custom settings have been applied." buttons {"OK"} default button 1 with icon note
end tell