Desafortunadamente, cambiar los archivos de preferencias del sistema siempre requerirá permisos administrativos, que es algo que el usuario tiene que dar explícitamente a su script.
Afortunadamente, ¡hay una manera de lograr esto sin cambiar los archivos de preferencias del sistema! Usando AppleScript, se puede pedir al demonio de eventos del sistema que cambie la apariencia del sistema.
Estoy probando esto en mi computadora portátil de trabajo, que no me permite cambiar las preferencias de accesibilidad, por lo que ni siquiera sé si el terminal está habilitado allí (sospecho que no lo está). Además, ¡esto no hace ningún script GUI! (grabé el siguiente gif con las Preferencias del Sistema no ejecutándose) En su lugar, realiza la misma acción que la casilla de verificación en Preferencias del Sistema, pero sin necesidad de acceder a esa casilla de verificación.
¡Espero que esto te funcione!
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
¿No quieres que algo arranque un AppleScript? Estoy contigo. Puede ejecutar cualquier AppleScript desde bash (y, por lo tanto, el terminal) pasándolo como una cadena 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'
Hecreadounaaplicacióndepruebadeconceptoquemuestraestatécnica,másunpardeotras:
MacOS Dark Mode Switcher