Open-source project
AutoDarkMode/Windows-Auto-Night-Mode avatar
AutoDarkMode/Windows-Auto-Night-Mode

Auto Dark Mode for Windows 10 and 11: Scheduling the Theme Switch

Automatically switches between the dark and light theme of Windows 10 and Windows 11

9,741 stars310 forksC#GPL-3.0

At a glance

What is it?
Auto Dark Mode is a C# Windows application that flips the system theme on a schedule, at sunrise and sunset, or from an ambient light sensor. It installs without admin rights and adds wallpaper, cursor, accent colour and script actions on top of the theme change.
Who is it for?
Auto Dark Mode fits Windows 10 22H2 or newer and Windows 11 users who want the theme change tied to sunrise and sunset rather than done by hand, and who are willing to run a background service and a tray application to get it. It is the wrong choice if you need a cross-platform tool, if you cannot accept a GPL-3.0 desktop application on the machine, or if you expect the upstream project to answer support requests on a schedule.
Can I use it commercially?
Yes, with conditions. GPL-3.0 is a copyleft licence: if you distribute software that includes it, you must release that software's source code under the same licence. Running it internally without distributing it does not trigger that obligation.
Is it still maintained?
Yes. The repository last received commits 9 days ago.
What is it written in?
Mainly C#, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on September 30, 2026, and from our analysis. They are not legal advice.

Editorial analysis

The problem Auto Dark Mode solves on Windows

Windows exposes dark and light appearance as a system setting, not as a schedule. You change it, and it stays changed until you change it again. The README frames the project as bringing to Windows a feature that Android, iOS and macOS already provide: switching the system design based on the time of day. That is the whole pitch, and it is narrower than the feature list suggests.

The audience is Windows 10 and Windows 11 desktop users. The README states that Windows 10 versions older than 22H2 are not supported, so the supported surface is Windows 10 22H2 and Windows 11. The application is written in C# and ships as a tray application plus a background service, which is why it can act without you opening a settings window each evening. The README also states that no admin rights are needed and that uninstall is clean, which matters on managed machines where you cannot elevate.

Everything beyond the theme switch is optional. Wallpaper, mouse cursor, accent colour, touch keyboard, .theme files and custom scripts are listed as additional features, not as the core function. If you only want the theme to follow the sun, you can leave the rest alone.

How the AutoDarkModeSvc service and tray app work together

The repository layout shows the split clearly. AutoDarkModeSvc is the service project, AutoDarkModeApp is the application, AutoDarkModeLib holds shared code, AutoDarkModeShell and AutoDarkModeComms handle command and inter-process communication, and AutoDarkModeUpdater handles updates. Two Rust crates, adm-downloader-rs and adm-updater-rs, sit alongside the C# projects, so the download and update paths are not written in the same language as the rest of the product.

That separation is the reason the theme can change while no window is open. The service holds the schedule and performs the switch; the tray application is the interface you configure it through. The README lists the switch triggers as sunrise and sunset, an ambient light sensor, or a manual postpone and delay. It also states that the application does not switch while a game is running, to avoid stuttering, and that battery-powered devices get additional options such as enabling dark mode on battery.

A detail worth noting for anyone reading the source: the README says translations live in AutoDarkModeApp\Strings, and the project uses Weblate for community translation. That is a normal arrangement, but it means user-visible strings are spread across resource files rather than centralised.

Installing Auto Dark Mode with winget and making the first switch

The README gives several install paths. The simplest is WinGet, which the README documents with this command:

powershell
winget install autodarkmode

After it finishes, the README indicates the tray application and the service are installed; you should see the Auto Dark Mode tray icon rather than a full window. The README also links a setup .exe from the GitHub releases page and a Microsoft Store listing, and notes Chocolatey and Scoop entries that it describes as unofficial. For a single machine, WinGet or the setup file is the documented route.

For deployment across several machines, the README gives installer arguments that skip the installer window:

text
/allusers /verysilent

The README attaches a warning to this: the integrated updater does not support system-wide installations. If you use /allusers, plan to update the machines yourself rather than relying on the in-app updater.

Once installed, the first real use is to open the tray application and set the schedule. The README describes the switch as based on sunrise and sunset, so the location the application uses determines the times. The repository does not document how that location is obtained, so treat the first day as a check: confirm the theme changed at the time you expected, and confirm the wallpaper, cursor and accent options did what you asked if you enabled them.

Where Auto Dark Mode is the wrong tool

The most concrete limitation is in the README itself: Windows 10 versions older than 22H2 are not supported. If you maintain Windows 10 machines below that build, this project is not an option, and no configuration will change that.

The second limitation follows from the deployment arguments. Because the integrated updater does not support system-wide installations, the /allusers /verysilent path the README recommends for multiple machines removes automatic updating for those machines. You gain silent deployment and lose the updater. That is a real trade-off, not a documentation gap.

The third is scope. This is a Windows desktop application, not a cross-platform theming layer. If your work spans Linux and macOS, the project does not address those systems, and you would be maintaining two solutions. The fourth is the game-detection behaviour: the README states the application does not switch while you are playing a game. That is deliberate, but it means a scheduled switch can be skipped, and the README does not describe what happens to the missed switch afterwards.

Finally, the README points to a wiki for open questions, which is where the deeper configuration detail lives. If a setting is not in the README and not in the wiki, you are reading source code.

Auto Dark Mode compared with Windows Task Scheduler and .theme files

The obvious alternative is the one Windows already ships: a scheduled task that runs a script to change the theme, paired with a saved .theme file. The difference is in what each approach owns. A scheduled task owns the trigger and nothing else; the theme change itself is whatever your script does. Auto Dark Mode owns the trigger and the change, and it exposes the change as a set of named options: wallpaper, mouse cursor, accent colour, touch keyboard, .theme file, grayscale filter, custom scripts.

That ownership is also the cost. A scheduled task is a few lines you can read in full and remove in one step. Auto Dark Mode is a service, a tray application, a library, a shell and an updater, and the README states uninstall is clean, which is a claim about the installer rather than something you can verify from the repository listing alone. If your requirement is one theme switch per day and nothing else, the scheduled task is smaller and has no update path to maintain. If you want the switch to follow sunrise and sunset without you computing those times, or you want the wallpaper and accent colour to move with the theme, the scheduled task approach means writing and maintaining that logic yourself.

There is no single right answer here, and the project does not claim one.

Licence, updates and the cost of keeping it current

The repository is licensed GPL-3.0. For an end user installing the application on a personal machine, that is a distribution licence you receive the software under. For anyone embedding Auto Dark Mode in a product, or shipping a modified build, GPL-3.0 carries obligations about source availability that differ from permissive licences. This is a description of the licence identifier in the repository, not legal advice; if you plan to redistribute or modify it, read the licence text and get proper advice.

The upgrade cost is visible in the release history. The releases listed are 11.1.1.1 from 2026-08-16, 11.1.0.23 from 2026-08-14, and 11.0.0.54 from 2025-10-13. The gap between 11.0.0.54 and 11.1.0.23 is roughly ten months, and the two 11.1 releases are two days apart. That pattern suggests long stretches without a release followed by quick fixes, which is worth knowing if you depend on a specific behaviour.

AutoDarkModeUpdater and adm-updater-rs exist in the repository, and the README lists automatic updates as a feature. The same README states the integrated updater does not support system-wide installations, so the update path and the silent deployment path are mutually exclusive. The last push to the default branch was on 2026-09-21, which is recent relative to the releases above.

Editorial conclusion

Auto Dark Mode fits Windows 10 22H2 or newer and Windows 11 users who want the theme change tied to sunrise and sunset rather than done by hand, and who are willing to run a background service and a tray application to get it. It is the wrong choice if you need a cross-platform tool, if you cannot accept a GPL-3.0 desktop application on the machine, or if you expect the upstream project to answer support requests on a schedule. Before adopting it, verify three things: that the installed build is 11.1.1.1 or newer, since the release notes list 11.1.1.1 as the current release from 2026-08-16; that your Windows 10 build is 22H2 or later, because the README states older versions are not supported; and that the scheduled task created by AutoDarkModeSvc actually fires after a reboot, which is the behaviour the README does not describe.

Frequently asked questions

How do I enable automatic dark mode in Windows 11 with Auto Dark Mode?

Install it with winget install autodarkmode, or run the setup .exe from the releases page, then set the schedule in the tray application. The README describes the switch as based on sunrise and sunset.

Why is dark mode automatically turning on?

In Auto Dark Mode the switch is driven by the schedule you configure, by sunrise and sunset, or by an ambient light sensor, and the README states the application also avoids switching while a game is running. If the change is unexpected, the schedule and the trigger type are where to look.

How to turn on dark mode automatically?

The README states the theme switch can be based on sunrise and sunset, on an ambient light sensor, or postponed and delayed manually. Those are the triggers the application exposes; there is no separate always-on mode documented.

How to disable automatic dark mode?

The README does not document a disable procedure. The repository lists AutoDarkModeSvc as the service project and the README states uninstall is clean, so removing the application is the documented path rather than pausing it.

Official sources

  1. AutoDarkMode/Windows-Auto-Night-Mode on GitHub
  2. Issues
  3. License: GPL-3.0
  4. README
  5. Releases
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/autodarkmode-windows-auto-night-mode.svg)](https://hysenlabs.com/projects/autodarkmode-windows-auto-night-mode)