Love this? Please consider supporting its creator by starring or sponsoring this project on GitHub!
From the project's README:
Set macOS dark mode at sunset. If you have Alfred installed, the dark theme will also be set.
This shell script gets the sunrise and sunset times from Night Shift and automates the setting up of two user launch agents for sunrise and sunset, which then take over running the script thereafter. If your mac was asleep/off during the solar times, launchd will run the script when you're next logged in!
Or you can supply your own sunrise and sunset 24H times by passing arguments. Example: 0600 1800
News: macOS Catalina includes an 'auto' Dark Mode and the new version of Alfred remembers the theme set for light/dark mode and so basically there's no point in using this 😋. However, if you're on an earlier macOS release or you're a fan of setting your own Dark Mode schedules, then this is just for you!
Mojave and later
High Sierra and below
$ ./darkmode.sh OR $ ./darkmode.sh HHMM HHMM
Compatible with macOS Mojave and later Dark Mode. Press OK to the security dialogs to allow control to System Events that appear when first running the script.
Night Shift requires Wifi and "Setting Timezone" enabled in System Preferences > Security & Privacy > Location Services > System Services > Details.
If your Mac does not support Night Shift, please use the previous version 1.7.2 which uses the Yahoo Weather API.
If you have a custom Alfred theme, you can change the name of the themes in the global variables.
A log file is stored in ~/Library/Logs which logs solar time changes and script errors.
$ ./darkmode.sh /u