Si quisiera tener una barra de menú aplicación que podría cambiar la casilla de verificación para Ajustar el brillo automáticamente en la pestaña Mostrar de Pantallas en Preferencias del sistema , así es como lo hago ...
Uso del código modificado de esta respuesta para el envoltorio y agregando el código adicional para lograr la funcionalidad y el objetivo deseados, aquí está el ejemplo AppleScript código :
-- # Acknowledgment: Some of the code used herein is modified code from the following answer:
-- # https://apple.stackexchange.com/questions/293307/applescript-run-from-menu-bar/293392#293392
use AppleScript version "2.4"
use scripting additions
use framework "Foundation"
use framework "AppKit"
property aStatusItem : missing value
on run
init() of me
end run
on init()
set aList to {"Toggle - Automatically Adjust Brightness", "", "Quit"}
set aStatusItem to current application's NSStatusBar's systemStatusBar()'s statusItemWithLength:(current application's NSVariableStatusItemLength)
aStatusItem's setTitle:"☀️"
aStatusItem's setHighlightMode:true
aStatusItem's setMenu:(createMenu(aList) of me)
end init
on createMenu(aList)
set aMenu to current application's NSMenu's alloc()'s init()
repeat with i in aList
set j to contents of i
if j is not equal to "" then
set aMenuItem to (current application's NSMenuItem's alloc()'s initWithTitle:j action:"actionHandler:" keyEquivalent:"")
else
set aMenuItem to (current application's NSMenuItem's separatorItem())
end if
(aMenuItem's setTarget:me)
(aMenu's addItem:aMenuItem)
end repeat
return aMenu
end createMenu
on actionHandler:sender
set aTitle to title of sender as string
if aTitle is not equal to "Quit" then
my clickAutomaticallyAdjustBrightness()
else
current application's NSStatusBar's systemStatusBar()'s removeStatusItem:aStatusItem
tell current application to quit
end if
end actionHandler:
on clickAutomaticallyAdjustBrightness()
if running of application "System Preferences" then
quit application "System Preferences"
delay 1
end if
tell application "System Preferences"
reveal anchor "displaysDisplayTab" of pane id "com.apple.preference.displays"
delay 1
tell application "System Events"
tell group 1 of tab group 1 of window 1 of application process "System Preferences"
click checkbox "Automatically adjust brightness"
set isChecked to (value of checkbox "Automatically adjust brightness") as boolean
end tell
end tell
quit
end tell
if isChecked then
display dialog " Automatically adjust brightness is checked." buttons {"OK"} default button 1 ¬
with title "Toggle - Automatically Adjust Brightness" giving up after 5
else
display dialog " Automatically adjust brightness is not checked." buttons {"OK"} default button 1 ¬
with title "Toggle - Automatically Adjust Brightness" giving up after 5
end if
end clickAutomaticallyAdjustBrightness
- Tenga en cuenta que es posible que el valor de los comandos
delay
deba ajustarse para su sistema, y / o comandos adicionales delay
puede o no ser necesario. Ajuste valores de y / o agregue / elimine los comandos delay
según corresponda.
Copie y pegue el ejemplo AppleScript código que se muestra arriba en un nuevo documento en Script Editor , guardándolo como una aplicación, por ejemplo Alternar - Ajustar automáticamente el brillo y marque la casilla de verificación [√] Manténgase abierto después de ejecutar el controlador mientras lo guarda.
Luego, en Terminal , ejecuta el siguiente comando para ocultar el Dock Tile en el Dock para, por ejemplo. Alternar - Ajustar automáticamente el brillo de la aplicación:
defaults write '/Applications/Toggle - Automatically Adjust Brightness.app/Contents/Info.plist' LSUIElement -bool yes
Ahora agregue el e.g. Alternar - Ajustar automáticamente el brillo de la aplicación a:
Preferencias del sistema > Seguridad & Privacidad > Privacidad > Accesibilidad
Mientras marca su casilla de verificación .
Ahora el e.g. La aplicación Alternar - Ajustar brillo automáticamente está lista para ejecutarse y todo lo que aparecerá es un icono amarillo del sol en la barra de menús y no Dock Tile en el Dock .
La p. ej. La aplicación Alternar - Ajustar el brillo automáticamente cambiará la selección y desactivación de la casilla de verificación para Ajustar el brillo automáticamente en la pestaña Mostrar de Pantallas en Preferencias del sistema y luego aparece un cuadro de diálogo.
Los comandos display dialog
podrían reemplazarse con los comandos display notification
si así lo prefieres.
También tenga en cuenta que este método no funciona con todas las versiones de OS X / macOS, sin embargo, debería funcionar con al menos 10.11 y más reciente.
Nota: El ejemplo AppleScript código es solo eso y no emplea ningún manejo de errores y está pensado solo para mostrar una de las muchas formas de realizar una tarea. La responsabilidad recae siempre sobre el Usuario para agregar / usar el manejo de errores según sea necesario / deseado.