Dopo l'aggiornamento a macOS Mojave, mi chiedevo se ci fosse un'impostazione che accendesse automaticamente la modalità Dark ad una certa ora del giorno?
Ho trovato solo l'impostazione per accenderlo e spegnerlo manualmente.
Nel caso qualcuno sia interessato a una risposta che non richiede di installare nulla ma richiede di toccare il codice solo un po '... Ecco qui ...
Modalità di attivazione / disattivazione con Applescript :
tell application "System Events"
tell appearance preferences
set dark mode to not dark mode
end tell
end tell
Come attiva la modalità scura con Applescript :
tell application "System Events"
tell appearance preferences
set dark mode to true
end tell
end tell
Come disattiva modalità oscura con Applescript :
tell application "System Events"
tell appearance preferences
set dark mode to false
end tell
end tell
Ci sono applicazioni abbastanza robuste là fuori che possono eseguire script o azioni in un momento specifico, ma queste applicazioni sono per lo più abbastanza estese e costose. Volevo citarne uno perché ti permette di fare qualcosa di più che semplicemente attivare la modalità dark: Keyboard Maestro - È un po 'come Automator, ma meglio. Non lasciarti ingannare dall'aspetto obsoleto.
Vorrei utilizzare launchd , perché non richiede di installare nulla. Richiede di toccare un po 'di codice, ma niente di importante.
Come attivare Applescript in un momento specifico con il file di elenco delle proprietà Launchd (plist):
Devi creare un nuovo file .plist
in ~/Library/LaunchAgents
(~ rappresenta la tua cartella utente)
/Library/LaunchAgents
(Macintosh HD). .plist
è solo un file di testo che puoi modificare in qualsiasi editor di testo e salvare come testo con le estensioni .plist
. .plist
esistente con TextEdit.app
, non lo salvi accidentalmente come file .rtf
o qualcosa del genere. Copia e amp; incollalo nel file .plist
:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.time.trigger.darkmode</string>
<key>Program</key>
<string>/usr/bin/osascript</string>
<key>ProgramArguments</key>
<array>
<string>osascript</string>
<string>/Users/joonaspaakko/Desktop/toggle-darkmode.scpt</string>
</array>
<key>StartCalendarInterval</key>
<array>
<dict>
<key>Hour</key>
<integer>21</integer>
<key>Minute</key>
<integer>20</integer>
</dict>
</array>
</dict>
</plist>
<string>osascript</string>
punta al file .scpt
di Applescript che deve essere attivato. Lo cambierai al passaggio 3 dopo aver creato un file di script. <key>StartCalendarInterval</key>
che dice Hour
e Minute
è dove si imposta l'ora. Il tempo impostato attuale è H 21 M 20
= 9:20 pm Questi passaggi sono forse un po 'indietro visto che ho già impostato la posizione dello script in .plist
ma creiamo il file .scpt
successivo.
/Applications/Utilities/Script Editor.app
.
Script
file. Se stai usando lo script da solo, salvalo da qualche parte sotto la tua home directory. Se imposti questo account per tutti gli account, dovrai archiviarlo in una posizione accessibile a tutti, ad esempio /Library/Scripts
. .plist
dal passaggio 2 e modifica la riga sotto <string>osascript</string>
in modo che punti al tuo nuovo file di applicazione di applescript (file .scpt
). .plist
dalla cartella o semplicemente eliminarlo. f.lux può passare tra le modalità luce / buio di Mojave all'alba / tramonto ("Effetti colore"):
OS X Dark theme at sunset: Uses the normal theme during the day and switches to dark theme (dock and menu bar) each night at sunset. Disabling f.lux will also disable dark theme.
Al momento non esiste un sistema operativo nativo, ma è possibile utilizzare alcuni software come
» NightOwl
oscriviiltuoscriptinAppleScriptEditorperfarlocliccandosu
tellapplication"System Events"
tell appearance preferences
set dark mode to not dark mode
end tell
end tell
Un'altra opzione è un launch plist che ho creato per me stesso e condiviso su Github.
Il mio profilo è impostato su 9pm e 7:15 am, puoi cambiarlo facilmente. Ho incluso un singolo comando di terminale per installarlo. Non installa alcun software, utilizza solo strumenti macOS standard. In effetti ho praticamente fatto lo stesso di quello che Joonas mi ha suggerito di fare nella sua risposta, e lo ho condiviso in modo da non doverlo digitare.
Come citato @ Gert-JanRoeleveld, @Joonas ha in gran parte il giusto approccio. Tuttavia ci sono alcuni dettagli mancanti da chiarire / migliorare:
launchd
esegua automaticamente l'accesso ogni volta che accedi, deve essere collocato in ~/Library/LaunchAgents
o /Library/LaunchAgents
, e il nome del file deve corrispondere alla chiave "Etichetta", cioè, %codice%. Deve essere un file di testo normale. Non verrà avviato fino al prossimo accesso, a meno che tu non sia com.time.trigger.darkmode.plist
per esempio. launchctl load ~/LaunchAgents/com.time.trigger.darkmode.plist
. Gli altri utenti non avranno accesso a questo file, e quindi lo script non funzionerà per nessun altro (questo è generalmente considerato una cattiva pratica). Invece, includi l'AppleScript all'interno dello stesso plist:
<?xml version="1.0" encoding="UTF-8"?>
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.time.trigger.darkmode</string>
<key>Program</key>
<string>/usr/bin/osascript</string>
<key>ProgramArguments</key>
<array>
<string>osascript</string>
<string>-e</string>
<string>tell app "System Events" to tell appearance preferences to set dark mode to not dark mode</string>
</array>
<key>StartCalendarInterval</key>
<array>
<dict>
<key>Hour</key>
<integer>21</integer>
<key>Minute</key>
<integer>20</integer>
</dict>
</array>
</dict>
</plist>
/Users/joonaspaakko/Desktop/toggle-darkmode.scpt
con un booleano negato nel comando ) ha davvero bisogno di andare a Brett Terpstra . Un'altra opzione di terze parti è LightsOff .
Consente inoltre di controllare quali app scambiano temi e può anche cambiarle per alcune altre app di terze parti con temi chiari / scuri, anche se non tutti .