Windows 自动深色模式工具,可按照时间、日出日落、夜间模式、环境光或电池状态,在浅色与深色主题之间自动切换。同时支持应用主题、系统主题、壁纸、强调色、鼠标指针和自定义脚本等联动切换。
本仓库基于 Windows Auto Dark Mode 项目代码维护,当前版本重点修复了笔记本连接外接显示器时的多屏壁纸同步问题。
- 定时切换 Windows 浅色与深色主题。
- 分别切换应用模式和系统模式。
- 为浅色、深色主题配置不同壁纸。
- 支持每台显示器使用独立壁纸。
- 支持 Windows 聚焦、纯色背景和壁纸填充方式。
- 支持强调色、鼠标指针、颜色筛选器和自定义脚本切换。
- 支持手动切换、延迟切换和临时暂停自动切换。
修复了以下场景中壁纸偶尔变成纯黑色的问题:
- 笔记本合盖后仅使用外接显示器。
- 从单外接屏切换回笔记本内屏与外接屏双屏。
- 解锁、唤醒或热插拔显示器后立即切换明暗主题。
- 两台显示器使用相同壁纸。
修复后的行为:
- 按 Windows 实际
DISPLAY编号保存壁纸映射,不再按显示器数量截断配置。 - 只对当前活动显示器应用壁纸,合盖的笔记本内屏不会被误判为失败。
- 监听系统显示拓扑变化,显示器重新连接后自动刷新壁纸。
- 设置壁纸后读取系统状态进行校验,失败时短暂重试。
- 壁纸文件暂时不可访问时保留原背景,不再替换成黑色占位图。
- 壁纸设置页提供刷新按钮,可重新检测显示器连接状态。
后台刷新由 Windows 显示设置事件触发,没有常驻轮询。正常使用时不会持续增加 CPU 占用或耗电;只有显示器连接状态变化或壁纸切换时才会执行短暂检测与重试。
- Windows 10 19041 或更高版本。
- 推荐 Windows 11。
- 当前安装程序仅提供 x64 版本。
- 发布包为自包含版本,无需单独安装 .NET 运行时。
从项目构建产物中运行:
artifacts\Windows-Auto-Night-Mode-11.1.0.21-x64-Setup.exe
安装向导支持:
- 自定义安装路径。
- 开始菜单快捷方式。
- 可选桌面快捷方式。
- 安装完成后启动后台服务和应用。
- 在 Windows“已安装的应用”中卸载。
安装向导当前使用英文,应用界面支持中文。
也可以直接解压发布 ZIP 到任意目录运行,但必须保持以下相对目录结构:
adm-app\core\AutoDarkModeSvc.exe
adm-app\ui\AutoDarkModeApp.exe
先运行服务,再运行应用:
adm-app\core\AutoDarkModeSvc.exe
adm-app\ui\AutoDarkModeApp.exe
用户配置不会保存在安装目录中,升级或重新安装通常不会丢失设置。
配置目录:%APPDATA%\AutoDarkMode
主配置: %APPDATA%\AutoDarkMode\config.yaml
服务日志:%APPDATA%\AutoDarkMode\service.log
遇到壁纸切换问题时,可在日志中搜索 WallpaperSwitch、wallpaper synchronization 或 display topology changed。
- Windows 10/11 x64。
- .NET 9 SDK 或兼容的更新版 SDK。
- Visual Studio 2022 的 Windows 应用开发组件与 Windows SDK。
- Inno Setup 6,用于生成安装程序。
dotnet restore AutoDarkModeApp\AutoDarkModeApp.csproj -r win-x64
dotnet restore AutoDarkModeSvc\AutoDarkModeSvc.csproj -r win-x64
dotnet restore AutoDarkModeShell\AutoDarkModeShell.csproj -r win-x64
dotnet build AutoDarkModeApp\AutoDarkModeApp.csproj --configuration Release --runtime win-x64 --no-restore
dotnet build AutoDarkModeSvc\AutoDarkModeSvc.csproj --configuration Release --no-restoredotnet publish AutoDarkModeApp\AutoDarkModeApp.csproj -p:PublishProfile=AutoDarkModeApp\Properties\PublishProfiles\AppPublish.pubxml --no-restore
dotnet publish AutoDarkModeSvc\AutoDarkModeSvc.csproj -p:PublishProfile=AutoDarkModeSvc\Properties\PublishProfiles\ServicePublish.pubxml --no-restore
dotnet publish AutoDarkModeShell\AutoDarkModeShell.csproj -p:PublishProfile=AutoDarkModeShell\Properties\PublishProfiles\ShellPublish.pubxml --no-restore发布目录:
bin\Publish\x86\adm-app
& "$env:LOCALAPPDATA\Programs\Inno Setup 6\ISCC.exe" installer\AutoDarkMode-x64.iss安装程序输出到 artifacts 目录。
修改壁纸切换逻辑后,至少验证以下场景:
- 双屏状态下切换浅色与深色主题。
- 合盖后仅使用外接屏切换主题。
- 打开笔记本内屏并恢复双屏。
- 在壁纸设置页点击刷新按钮,确认显示器状态正确。
- 锁屏、解锁、睡眠和唤醒后检查两台显示器壁纸。