Se volevo avere una barra dei menu app che potrebbe attivare la casella di controllo per Regolare automaticamente la luminosità nella scheda Display di Display in Preferenze di sistema , ecco come faccio io ...
Usando il codice modificato da questa risposta per il wrapper e aggiungendo nel codice aggiuntivo per ottenere la funzionalità e l'obiettivo desiderati, ecco l'esempio AppleScript codice :
-- # 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
- Tieni presente che il valore del
delay
comando (i) potrebbe dover essere regolato per il tuo sistema, o altri delay
comandi potrebbe o non potrebbe essere necessario. Regola i valori di e o aggiungi / rimuovi i comandi delay
come appropriato.
Copia e incolla il esempio AppleScript codice mostrato sopra in un nuovo documento in Script Editor , salvandolo come una domanda, ad es Attiva / disattiva - Regola automaticamente la luminosità e controlla la [√] casella di controllo Rimani aperto dopo l'esecuzione salvandola.
Quindi, nel Terminale , esegui il seguente comando per nascondere la Tegola del Dock sul Dock per es. Commuta - Regola automaticamente luminosità applicazione:
defaults write '/Applications/Toggle - Automatically Adjust Brightness.app/Contents/Info.plist' LSUIElement -bool yes
Ora aggiungi l'es. Attiva / disattiva l'applicazione Regola automaticamente la luminosità su
Preferenze di sistema > Sicurezza e amp; Privacy > Privacy > Accessibilità
Mentre controlli la sua casella di controllo .
Ora, ad es. Attiva / disattiva l'applicazione Regola automaticamente la luminosità è pronta per essere eseguita e tutto ciò che verrà visualizzato è un'icona gialla del sole sulla barra dei menu e nessun riquadro del dock nel Dock .
Ad es. Attiva / disattiva l'applicazione Regola automaticamente la luminosità attiva / disattiva la verifica della casella di controllo per Regola automaticamente la luminosità nella scheda Display di Display in Preferenze di Sistema e successivamente visualizza una finestra di dialogo.
I comandi display dialog
potrebbero essere sostituiti con display notification
comandi se preferisci quello.
Si noti inoltre che questo metodo non funziona con tutte le versioni di OS X / macOS, tuttavia dovrebbe funzionare con almeno 10.11 e successivi.
Nota: il esempio codice AppleScript è proprio questo e non impiega alcuna gestione degli errori e intende solo mostrare uno dei molti modi per svolgere un compito. L'onere è sempre sull'utente di aggiungere / utilizzare la gestione degli errori appropriata come necessario / voluto.