Driftlet 1.0.5(2026-08-09)
新增
-
安装包完结页「开机自动启动」勾选框(NSIS 安装引导,与其它软件同款):MUI2 完结页原生仅两个勾选项槽位(「运行 Driftlet」与被借用为「创建桌面快捷方式」的 SHOWREADME),第三个经页面 SHOW 回调手工创建(
FinishPageShow,坐标沿用 MUI2 Finish.nsh 勾选项间距公式 TEXT_BOTTOM 85→RUN 90→README 110→本框 130);LEAVE 回调按勾选态写/删注册表,口径完全镜像auto-launch::enable()/disable()——勾选写HKCU\...\Run\driftlet+StartupApproved\Run的 enabled 二进制(任务管理器「启动」页与应用is_enabled()同读,设置面板开关看到的即此处所选),不勾删 Run 值(幂等)。初值读注册表现状(重装且已开则默认勾选,全新安装默认不勾),Back→Next 恢复用户选择;更新/被动/静默安装跳过不动注册表。标签中英双语(模板内LangString autostart),为 installer.nsi 继「删除应用数据复选框移除」后的第二处自定义(关键机制双版同步,含 cli 升级重打模板警告更新)。 -
权限声明新增「中危」分级:安装引导页权限由「普通 + 高危(红)」两态改为两档分级标注——高危(红色徽标)
shell/system,中危(黄色徽标)registry/clipboard/mic;相对旧版:mic高危→中危,system无标注→高危,registry/clipboard无标注→中危。分级仅是引导页展示层,后端require_perm仍为「声明/未声明」二元校验。新增--warning/--warning-soft主题变量(浅/深色)与wizard.permMediumRisk文案键(中英)。 -
皮肤窗口 Alt+F4 = 隐藏而非关闭:Alt+F4 是系统级窗口消息(WM_CLOSE),JS 层与加速键开关都管不到,tao 转为
CloseRequested——皮肤窗建窗的on_window_event新增分支:未登记的关闭请求prevent_close+hide()+hotkey::sync_tray_toggle_item同步托盘勾选项;唤回复用既有全局快捷键(默认 Ctrl+Shift+Alt+D)与托盘勾选项。程序化关闭(卸载/重载/退出,全汇聚close_skin_window_nowait)在close()前把 label 登记进INTENTIONAL_CLOSES静态集合,事件处理消费放行,close()失败撤销登记,create_skin_window建窗时再防御性清理同 label 残留登记(极端场景:close()入队后窗口被外部销毁、CloseRequested未触发导致登记残留,不清则新窗首次用户 Alt+F4 被误放行)——vendored tauri-runtime-wry 中close()与用户 Alt+F4 同走on_close_requested,CloseRequested不带关闭原因,登记集合是唯一判别;hwnd_dead分支走destroy()不触发CloseRequested,无需登记。管理器窗口 Alt+F4 由既有「关闭=隐藏到托盘」覆盖,行为不变。 -
浏览器加速键统一禁用(管理器 + 所有皮肤窗口):F5 / Ctrl+R / Ctrl+F5 刷新、Ctrl+P 打印、Alt+Home、F12 devtools 等全部失效(Ctrl+C/V 等编辑键为 DOM 层快捷键不受影响)——页面不可经按键刷新/导航,窗口生命周期完全归管理器。实现 =
factory::disable_browser_accelerator_keys(ICoreWebView2Settings3::SetAreBrowserAcceleratorKeysEnabled(false));原spawn_context_menu_disable_retry更名spawn_webview_hardening_retry,右键菜单禁用与加速键禁用一起在 WebView2 异步初始化期间重试约 6 秒;此后皮肤窗与管理器窗均由 5 秒维护定时器持续自愈重设。 -
第 20 种设置控件
stepper(数字步进器):−/+ 按钮按step增减数值,min/max可选夹取(缺省无界,step缺省 1),到界自动禁用对应按钮;小数位跟随step防浮点尾巴,点击即保存。全链路:SkinSettingKind::Stepper(pack-skin 镜像枚举同步),值校验/钳制并入validate_custom_setting与effective_settings的 number 臂;配置面板渲染为form-row右侧连体小组件(.cfg-stepper,沿用 segments 视觉语言,按压反馈进统一 scale 清单),新增editor.stepDecrease/editor.stepIncrease文案键(中英)。controls-demo 示例(含演示页新增的步进器驱动小秒表——改值即时重排间隔)与双版开发指南 §4.2、README 双版控件计数(19→20)同步。
移除
files权限取消:皮肤目录内文件读写(skin_read_file/skin_write_file/skin_list_dir/skin_delete_file)不再需要声明——fs 沙箱本就把一切操作限制在皮肤自身安装目录(绝对路径与..拒绝、canonicalize 包含性校验、防符号链接逃逸、skin.json/settings.json*只读保护),沙箱即边界。后端拆PERM_FILES常量与 4 处require_perm闸,fs 命令改走caller_skin(仅确认调用者身份、未安装皮肤快速失败);旧皮肤残留的"files"声明无害(未知名忽略规则不变),安装引导页静默略过。文档(中英开发指南 §2.3/安全模型/示例清单、关键机制双版、README 双版、路线图)与 toolbox 示例权限同步。