La forma de conseguirlo es
- Programa de control de la luminosidad (puede instalarse a través de Homebrew o compilarse desde el código fuente)
- Un bash script por usuario que establece el brillo
- script Añadido a
~/Library/LaunchAgents
y cargado con launchd
O
Hay un método de AppleScript que se puede utilizar en lugar de utilizar la referencia del programa de brillo anterior. No soy fan de este método porque no he encontrado que AppleScript sea tan fiable como bash (las cosas se rompen cuando Apple hace actualizaciones). Desplázate hasta el final para ver los detalles.
Instalar la luminosidad
Si tiene Homebrew, emita el comando brew install brightness
. Si se compila desde el código fuente, descárguelo desde el enlace proporcionado y compílelo.
cd /brightness ---- (or whereever you downloaded the source)
make
sudo make install
Pruébalo emitiendo algunos comandos de brighness:
brightness 1 <------- set to 100%
brightness .5 <------- set to 50%
Escribe un bash script para que se ejecute al iniciar la sesión
#!/bin/bash
/<path-to-brightness>/brightness .75
sleep 20 # I put this here because I find lauchd needs some "time"
exit 0
Haga esto para cada usuario y coloque el script en un lugar de fácil acceso. Por ejemplo, cree un directorio "script" en el directorio principal de cada usuario:
/Users/<username>/Scripts/set_brightness.sh
Esto es sólo un ejemplo, puedes colocar el script donde quieras, pero recuerda, necesitas uno que sea ejecutable por cada usuario. Hablando de "ejecutable" asegúrate de establecer los permisos del script para ejecutar - chmod +x set_brightness.sh
Asegúrese de probar ejecutando el script directamente desde la línea de comandos llamándolo:
$ ./set_brightness.sh
El brillo de tu pantalla debería cambiar a la configuración del script(asegúrate de cambiar la configuración manualmente primero para asegurarte de que no lo estás cambiando a lo que ya es).
Crear un archivo .plist y cargarlo en launchd
Su .plist se ejecutará cada vez que inicie sesión, por lo que debe estar ubicado en el directorio ~/Library/LaunchAgents. En cuanto al nombre del archivo, mi preferencia es usar algo como lo siguiente:
com.user.setbrightness.plist
El .plist debería tener un aspecto similar al siguiente:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.user.brightness</string>
<key>KeepAlive</key>
<key>RunAtLoad</key>
<true/>
<key>Program</key>
<string>/Users/<username>/<location of script>/set_brightness.sh
</dict>
</plist>
Cargar el .plist a launchd
launchctl load com.user.brightness.plist
Haz esto para cada usuario para que cada vez que el usuario se conecte se ejecute el bash script ajustando el brillo automáticamente.
Método alternativo (para monitores de 5K) 1
También puedes hacerlo a través de AppleScript y omitir el programa de brillo por completo (lo he probado en un iMac que no es 5K y que ejecuta la versión 10.11.6 y funciona).
Código AppleScript:
tell application "System Preferences"
activate
reveal anchor "displaysDisplayTab" of pane id "com.apple.preference.displays"
tell application "System Events"
delay 1
set value of slider 1 of group 1 of tab group 1 of window 1 of process "System Preferences" to 0.5
end tell
quit
end tell
Guarde este AppleScript de la misma manera que se ha descrito anteriormente.
Haga este cambio en su .plist (sustituyendo Program por ProgramArguments):
<key>ProgramArguments</key>
<array>
<string>osascript</string>
<string>path-to-script/set_brightness.scpt</string
</array>
1 Adaptado de este post: ¿Es posible que un Applescript atenúe/suba el brillo de la pantalla al 0%/100% en OSX 10.9 Mavericks cuando se conecta a una pantalla externa?