Purtroppo, la modifica dei file delle preferenze di sistema richiede sempre autorizzazioni amministrative, che è qualcosa che l'utente deve dare esplicitamente al tuo script.
Fortunatamente, c'è un modo per farlo senza cambiare i file delle preferenze di sistema! Utilizzando AppleScript, si può chiedere al daemon degli eventi di sistema di cambiare l'aspetto del sistema.
Lo sto testando sul mio portatile da lavoro, che non mi consente di modificare le preferenze di accessibilità, quindi non so nemmeno se Terminal è abilitato lì (ho il sospetto che non lo sia). Inoltre, questo non fa nessuno scripting della GUI! (ho registrato il gif sotto con le Preferenze di Sistema non in esecuzione) Invece, esegue la stessa azione che controlla la casella in Preferenze di Sistema, ma senza bisogno di accedere a quella casella di controllo.
Spero che questo funzioni per te!
AppleScript
-- Toggle dark mode
tell application "System Events" to tell appearance preferences to set dark mode to not dark mode
-- Enable dark mode, even it it's already enabled
tell application "System Events" to tell appearance preferences to set dark mode to true
-- Disable dark mode, even it it's already disabled
tell application "System Events" to tell appearance preferences to set dark mode to false
Bash
Non vuoi avere qualcosa da dare a un AppleScript? Sono con te. Puoi eseguire qualsiasi AppleScript da bash (e quindi dal terminale) passandolo come una stringa al comando osascript -e
:
# Toggle dark mode
osascript -e 'tell application "System Events" to tell appearance preferences to set dark mode to not dark mode'
# Enable dark mode, even it it's already enabled
osascript -e 'tell application "System Events" to tell appearance preferences to set dark mode to true'
# Disable dark mode, even it it's already disabled
osascript -e 'tell application "System Events" to tell appearance preferences to set dark mode to false'
Hocreatoun'appdiproof-of-conceptchemostraquestatecnica,oltreaunpaiodialtri:
MacOS Dark Mode Switcher