feat(core): M73 桌面壁纸路径探测(D38 第②级输入)
新增 platform::wallpaper:只做「桌面壁纸可能是哪个文件」的路径探测, 不解码图片、不取色(莫奈取色与三级降级留给 crates/design 的后续 mission)。 - 唯一入口 detect() / 注入式 detect_with(io, env, platform):返回有序候选列表 + 各步失败原因,全部找不到时是空列表而不是错误; - Windows 三步:TranscodedWallpaper(无扩展名,靠魔数认)→ *.theme 的 Wallpaper= → reg.exe query HKCU\Control Panel\Desktop /v WallPaper; - Linux 四步:gsettings picture-uri(-dark) → KDE Image= → hyprpaper/sway 配置 → XFCE xfce4-desktop.xml,每步失败不影响下一步; - macOS 两步:com.apple.wallpaper/Store/Index.plist 字符串扫描(不引 plist 依赖,兼容 bplist00)→ defaults read com.apple.desktop Background; 代码与文档明确标注「未在真机验证」; - 零 unsafe / 零 FFI(core 是 #![forbid(unsafe_code)]),文件读取与子进程 全部经 ProbeIo 注入,环境变量表经 EnvSource 注入;三平台采集逻辑不带 cfg, CI 的 Linux 上也能跑 Windows / macOS 夹具用例; - 不新增第三方依赖;6 个文件均 ≤400 行,32 条单测覆盖三平台的 正常命中 / 多候选 / 全部失败。
This commit is contained in:
1 parent
614bd253c8
commit
d3e9a62b21
7 files changed
+1946
No files matched your search
@@ -21,6 +21,9 @@
|
||||
//! - [`linux_caps`]:发行版(仅显示)+ 内核 release(喂 `os.version`)+ 会话/GL 能力探测;
|
||||
//! - [`vk_probe`]:Vulkan 能力的安全层探测(loader 文件 / ICD 注册 / 环境变量,无 `unsafe`);
|
||||
//! - [`theme_probe`]:系统主题(浅色/深色)探测,供主题三态的 `auto` 初始化对齐与兜底跟随。
|
||||
//! - [`wallpaper`]:桌面壁纸**路径探测**(D38 配色三级优先里第②级的输入)。本模块只做路径
|
||||
//! 探测——不解码图片、不取色、不生成调色板,莫奈取色与三级降级在 `crates/design` 的
|
||||
//! 后续 mission。
|
||||
//!
|
||||
//! 尚未落地(后续 mission):文件锁、进程工具、真实 GL/Vulkan 能力探测(钩子见
|
||||
//! [`linux_caps::probe_gl`] 与 [`vk_probe::probe_vk`],FFI 受限,实际探测归 app 层渲染后端选择)。
|
||||
@@ -39,4 +42,5 @@ pub mod receipt;
|
||||
pub mod redirect;
|
||||
pub mod theme_probe;
|
||||
pub mod vk_probe;
|
||||
pub mod wallpaper;
|
||||
pub mod windows_version;
|
||||
Reference in new issue
Block a user