On BigSur the Sunset-Detector works but it doesn't make sense, because in the real world darkness arrives a bit earlier than sunset. It hurts my eyes, because I stay focused on my work and don't notice that it's dark already.

How can I have macOS toggle dark mode earlier/later than sunset/sunrise for whatever location I'm currently in?

  • You could change your time zone. Feb 7, 2021 at 15:16
  • @JasonConrad what if my timezone is dynamic. I don't want to play with the settings every week. Also messing with timezone means wrong time/calendar/weather/reminder/alarm information. So I think this solution will definitely not work.
    – user405784
    Feb 7, 2021 at 15:17
  • Well, not to mention all of the other collateral damage that might cause. Feb 7, 2021 at 15:23
  • I don't know the answer, but dude just go dark all the way. Trust me. Mar 5, 2022 at 1:32

1 Answer 1


Basically you (and third party developers) don’t get to automate this since it’s a private API. This article explains the situation in great detail and offers three tools to get you close to customizing it.

First, turn the night shift off under “Schedule” in the night shift menu. This disables it schedule from activating, but doesn’t disable the feature.

I wonder if your setup is the ambient light sensor changing and not the schedule, though.

It will activate when it notices your environment is darker than normal, and disable itself when you’re back to daylight or bright environments.

Keep in mind this option will trigger automatically, which can be frustrating if you’re in a spot where the light fluctuates.

Short of using an automation tool to define your own preferred schedule or just automate toggling this manually, you can use Apple’s implementation or just take breaks and manage your lighting external to the display.

Some excellent automation tools include

  • 3
    Keyboard Maestro allows toggling of Dark Mode, for instance. And sunrise-sunset.org/api offers a API to get sunrise/sunset times depending on location.
    – nohillside
    Feb 7, 2021 at 16:29
  • 1
    @nohillside you are amazing. The script is pretty easy to toggle with automation, but API is icing on top!
    – bmike
    Feb 7, 2021 at 16:33
  • 1
    @nohillside thanks for the API, I'll write a program myself :D
    – user405784
    Feb 7, 2021 at 17:09

You must log in to answer this question.