ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

Windows-Auto-Night-Mode配置文件详解:理解JSON设置结构

2026/8/7 23:16:06 拓冰建站 浏览量
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: 时间偏移量,单位分钟,可微调日出日落时间

组件开关与配置

应用采用模块化设计,每个功能组件可独立启用和配置。所有组件配置均继承自BaseSettingsBaseSettingsEnabled泛型类,位于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进行配置文件的验证和转换。

常见配置问题解决

时间不同步问题

若自动切换时间不准确,应检查:

  1. 地理位置服务是否启用并授予权限
  2. 系统时间和时区设置是否正确
  3. 日出日落偏移量是否被意外调整

组件不生效排查

当某个组件无法正常工作时,可按以下步骤诊断:

  1. 检查配置中对应组件的Enabled属性是否为true
  2. 查看日志文件(启用Tunable.Debug=true)获取详细错误信息
  3. 验证相关文件路径(如壁纸、主题文件)是否存在且可访问

通过本文档,您已了解Windows-Auto-Night-Mode配置系统的核心结构和使用方法。完整配置项请参考AdmConfig.cs源代码,更多高级用法可查阅项目README.md文档。

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考