Windows-Auto-Night-Mode配置文件详解:理解JSON设置结构
Windows-Auto-Night-Mode配置文件详解:理解JSON设置结构
配置文件核心结构概述
Windows-Auto-Night-Mode的配置系统基于JSON格式,其核心定义位于AutoDarkModeLib/Configs/AdmConfig.cs。该文件定义了应用程序的所有可配置参数,采用分层结构设计,主要包含全局开关、时间设置、组件配置和高级选项四大模块。配置文件加载时会被序列化为AdmConfig类实例,通过修改JSON文件或使用图形界面均可调整这些参数。
全局基础设置
自动切换总开关
{ "AutoThemeSwitchingEnabled": true, "Governor": "Default" }AutoThemeSwitchingEnabled: 主开关,控制整个自动切换功能的启用状态Governor: 切换策略选择,默认值为"Default",可根据日出日落时间或自定义规则切换
时间配置模块
时间设置是自动切换的基础,相关代码定义如下:
public DateTime Sunrise { get; set; } = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, 7, 0, 0); public DateTime Sunset { get; set; } = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, 20, 0, 0);对应的JSON结构:
{ "Sunrise": "0001-01-01T07:00:00", "Sunset": "0001-01-01T20:00:00", "Location": { "Enabled": true, "UseGeolocatorService": true, "SunsetOffsetMin": 0, "SunriseOffsetMin": 0, "CustomLat": 39.9042, "CustomLon": 116.4074 } }Location.Enabled: 启用地理位置服务自动计算日出日落时间CustomLat/Lon: 手动指定经纬度坐标,在禁用地理位置服务时生效*OffsetMin: 时间偏移量,单位分钟,可微调日出日落时间
组件开关与配置
应用采用模块化设计,每个功能组件可独立启用和配置。所有组件配置均继承自BaseSettings或BaseSettingsEnabled泛型类,位于AutoDarkModeLib/ComponentSettings/目录下。
系统主题切换组件
{ "SystemSwitch": { "Enabled": true, "Settings": { "DarkThemePath": "C:\\Windows\\Resources\\Themes\\dark.theme", "LightThemePath": "C:\\Windows\\Resources\\Themes\\light.theme", "MonitorActiveTheme": true } } }Enabled: 组件启用状态DarkThemePath/LightThemePath: 自定义主题文件路径MonitorActiveTheme: 监控系统主题变化并同步配置
壁纸切换组件
{ "WallpaperSwitch": { "Enabled": true, "Settings": { "DarkWallpaperPath": "C:\\Pictures\\wallpaper_dark.jpg", "LightWallpaperPath": "C:\\Pictures\\wallpaper_light.jpg", "Fit": "Fill" } } }该组件允许为明暗模式分别设置不同壁纸,支持多种显示模式(填充、适应、拉伸等),相关实现可参考SwitchComponents/Base/WallpaperSwitch.cs。
其他核心组件
- 应用切换:AppsSwitchSettings控制特定应用的主题适配
- 光标切换:CursorSwitchSettings管理明暗模式下的光标样式
- 颜色调整:ColorizationSwitchSettings配置系统颜色方案
高级配置选项
性能优化设置
{ "GPUMonitoring": { "Enabled": true, "Threshold": 30, "Samples": 3 }, "ProcessBlockList": { "Enabled": true, "ProcessNames": ["Photoshop.exe", "PremierePro.exe"] } }GPUMonitoring: 当GPU使用率超过阈值(默认30%)时暂停主题切换ProcessBlockList: 进程黑名单,运行指定进程时暂停切换
通知与交互设置
{ "Notifications": { "OnAutoThemeSwitching": true, "OnSkipNextSwitch": true }, "AutoSwitchNotify": { "Enabled": true, "GracePeriodMinutes": 5 }, "Hotkeys": { "Enabled": true, "ForceLight": "Ctrl+Alt+L", "ForceDark": "Ctrl+Alt+D", "ToggleTheme": "Ctrl+Alt+T" } }- 通知设置控制主题切换时的提示方式
AutoSwitchNotify启用切换前的 grace 期提示- 自定义热键可快速切换主题模式
配置文件管理实践
配置文件位置
应用配置文件通常位于用户目录下的AppData\Roaming\AutoDarkMode文件夹中。通过图形界面修改的设置会自动保存到JSON文件,也可手动编辑后通过AutoDarkModeApp/Pages/PageSettings.xaml.cs中实现的配置重载功能生效。
配置备份与迁移
建议定期备份配置文件,特别是在升级版本前。配置迁移可通过简单复制JSON文件实现,但需注意不同版本间的配置结构可能存在差异。高级用户可使用AutoDarkModeLib/AdmConfigBuilder.cs中提供的API进行配置文件的验证和转换。
常见配置问题解决
时间不同步问题
若自动切换时间不准确,应检查:
- 地理位置服务是否启用并授予权限
- 系统时间和时区设置是否正确
- 日出日落偏移量是否被意外调整
组件不生效排查
当某个组件无法正常工作时,可按以下步骤诊断:
- 检查配置中对应组件的
Enabled属性是否为true - 查看日志文件(启用Tunable.Debug=true)获取详细错误信息
- 验证相关文件路径(如壁纸、主题文件)是否存在且可访问
通过本文档,您已了解Windows-Auto-Night-Mode配置系统的核心结构和使用方法。完整配置项请参考AdmConfig.cs源代码,更多高级用法可查阅项目README.md文档。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考