Attiva la modalità oscura in un determinato momento

7

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.

    
posta jrn 27.09.2018 - 01:42
fonte

6 risposte

9

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):

  1. Devi creare un nuovo file .plist in ~/Library/LaunchAgents (~ rappresenta la tua cartella utente)

    • Se vuoi farlo girare per tutti gli utenti, mettilo in /Library/LaunchAgents (Macintosh HD).
    • Questo .plist è solo un file di testo che puoi modificare in qualsiasi editor di testo e salvare come testo con le estensioni .plist .
    • Probabilmente hai file esistenti in quelle cartelle che puoi duplicare per crearne di tuoi. Se apri un file .plist esistente con TextEdit.app , non lo salvi accidentalmente come file .rtf o qualcosa del genere.
  2. 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>
  • La riga sotto <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.
  • La matrice sotto <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.

  1. Esegui l'applicazione Editor di script /Applications/Utilities/Script Editor.app .
    • incolla in qualsiasi formato di applicazione che desideri utilizzare (all'inizio della risposta nel caso in cui l'hai dimenticato)
    • Puoi provare a eseguire gli Applescript in questa applicazione premendo il pulsante di riproduzione.
    • Salva come 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 .
    • Ritorna al tuo file .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 ).
  2. Quando vengono creati entrambi i file, un passo importante è eseguire il logout (o il riavvio) poiché questi launch agent iniziano l'esecuzione in background all'avvio.
    • Se vuoi impedirne l'esecuzione, puoi spostare .plist dalla cartella o semplicemente eliminarlo.
risposta data 27.09.2018 - 10:47
fonte
5

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.

    
risposta data 30.09.2018 - 07:00
fonte
3

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
    
risposta data 27.09.2018 - 10:02
fonte
2

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.

link

    
risposta data 01.11.2018 - 04:49
fonte
1

Come citato @ Gert-JanRoeleveld, @Joonas ha in gran parte il giusto approccio. Tuttavia ci sono alcuni dettagli mancanti da chiarire / migliorare:

  • Come accennato, se vuoi che questo script 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.
  • L'implementazione (come attualmente scritto) chiama attualmente un AppleScript esterno che vive a 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>
  • (Non è necessario utilizzare Script Editor o creare un file AppleScript.)
  • Inoltre, a meno che non mi sbagli: credito per la funzionalità 'toggle' (leggendo il valore di /Users/joonaspaakko/Desktop/toggle-darkmode.scpt con un booleano negato nel comando ) ha davvero bisogno di andare a Brett Terpstra .
risposta data 27.12.2018 - 19:41
fonte
1

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 .

    
risposta data 29.10.2018 - 21:41
fonte

Leggi altre domande sui tag