Se volevo avere una barra dei menu app che potrebbero attivare o disattivare la casella di controllo per regolare automaticamente la luminosità del display scheda di display in Preferenze di Sistema , questo è come lo faccio ...
Utilizzando il codice modificato da questa risposta per il wrapper e aggiungendo il codice aggiuntivo per raggiungere la funzionalità e l'obiettivo desiderati, ecco l' esempio del codice AppleScript :
-- # 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
- Si noti che potrebbe essere necessario modificare il valore dei
delay
comandi per il proprio sistema e che potrebbero essere necessari o meno delay
comandi aggiuntivi . Regola i valori di e / o aggiungi / rimuovi i delay
comandi come appropriato.
Copia e incolla il codice AppleScript di esempio mostrato sopra in un nuovo documento in Script Editor , salvandolo come un'applicazione, ad esempio Attiva / Disattiva - Regola automaticamente la luminosità e seleziona la casella di controllo [√] Resta aperto dopo l'esecuzione del gestore mentre lo salvi.
Quindi in Terminale , esegui il comando seguente per nascondere il riquadro Dock sul Dock per l'applicazione Toggle - Regola automaticamente la luminosità :
defaults write '/Applications/Toggle - Automatically Adjust Brightness.app/Contents/Info.plist' LSUIElement -bool yes
Ora aggiungi ad esempio l'applicazione Toggle - Regola automaticamente la luminosità a:
Preferenze di Sistema > Sicurezza e privacy > Privacy > Accessibilità
Mentre si seleziona la relativa casella di controllo .
Ora l'applicazione Toggle - Regola automaticamente la luminosità, ad esempio , è pronta per essere eseguita e tutto ciò che apparirà è un'icona gialla del sole sulla barra dei menu e nessuna piastrella Dock sul Dock .
L'esempio Toggle - Regola automaticamente la luminosità applicazione alternerà selezionando e deselezionando la casella di controllo per regolare automaticamente la luminosità del display scheda di display in Preferenze di Sistema e visualizzare una finestra di dialogo in seguito.
I display dialog
comandi 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 versioni successive.
Nota: il codice AppleScript di esempio è proprio questo e non utilizza alcuna gestione degli errori ed è pensato solo per mostrare uno dei molti modi per eseguire un'attività. Spetta sempre all'utente aggiungere / utilizzare la gestione degli errori appropriata secondo necessità / desiderato.