Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Windows Auto Night Mode

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

遇到壁纸切换问题时,可在日志中搜索 WallpaperSwitchwallpaper synchronizationdisplay 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-restore

发布 x64 程序

dotnet 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 目录。

测试建议

修改壁纸切换逻辑后,至少验证以下场景:

  1. 双屏状态下切换浅色与深色主题。
  2. 合盖后仅使用外接屏切换主题。
  3. 打开笔记本内屏并恢复双屏。
  4. 在壁纸设置页点击刷新按钮,确认显示器状态正确。
  5. 锁屏、解锁、睡眠和唤醒后检查两台显示器壁纸。

许可证

本项目采用 GNU General Public License v3.0

About

No description, website, or topics provided.

Resources

Code of conduct

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages