跳到主要内容

Link Skill:一款 Windows 桌面端 symlink 批量管理工具

36

先放链接

背景

在 Windows 上管理 symlink 是一件麻烦事——mklink 命令需要管理员权限,每一条都要手动输入路径,没有批量创建的便利方式。尤其在管理多个技能包、插件或依赖库时,经常需要把几十个目录链接到不同位置。

Link Skill 就是为这个场景设计的。

技术选型

  • Tauri 2.x:比 Electron 轻量三个数量级,Rust 后端性能优秀
  • Vue 3 + Vite:前端响应式的扫描列表和 Profile 管理
  • Rust:PowerShell 调用的文件系统操作,隐藏窗口批量执行
  • WebView2:Windows 原生浏览器引擎,字体渲染和 OTS 校验的折腾大坑

核心功能

1. 批量创建 Symlink

选择源目录 → 自动扫描 → 勾选条目 → 填入目标路径 → 一键批量创建。后端将所有链接拼成一份 PowerShell 脚本一次执行,不会逐个弹窗。

2. 批量清除

支持按选中条目清除目标目录中的对应 symlink,也可一键清除全部。只操作 symlink,非链接的真实文件受到保护。

3. Profile 管理

常用路径组合可保存为 Profile,一键切换。存储在 JSON 文件中,跨会话保留。

4. 暗黑模式 & 主题

洛克魔法书(Rocom Grimoire)设计系统,羊皮纸亮色模式 + 暗黑模式,切换自带过渡动画。

5. 字体自定义

字重(细/中/粗)和字号(S/M/L)可调,全局 rem 缩放全部组件。字体为阿里妈妈方圆体(静态 OTF)。

6. 自定义标题栏

去掉原生 Windows 白条,深色自定义 TitleBar + 中/最大化/关闭按钮,窗口拖拽 + 圆角边角。

开发中的坑

OTS 字体校验

阿里妈妈方圆体是可变字体(Variable Font),Chromium 的 OTS(OpenType Sanitizer)拒绝解析内部变量表,导致字体无法加载。最终方案是用 fonttools 去掉 fvar/gvar 等变量表,生成静态 OTF 绕过校验。

PowerShell 弹窗

逐个创建 symlink 时每个链路都弹出一个 PS 窗口。改用 CREATE_NO_WINDOW + -WindowStyle Hidden + 批量脚本合并调用,彻底解决。

Tauri 自定义标题栏

decorations: false 后用 startDragging() API + capabilities 权限配置实现拖拽,按钮用独立区域避免事件冲突。

开源

Apache 2.0 协议。源码已推至 GitHub:yjkz/Link-Local-skill

截图.png

评论 (0)

暂无评论,来抢沙发吧!

发表评论