前言¶
在 DSH 的 Web GUI 里,皮肤通常以客户端插件形式安装。如果本地已经安装了多个 dsh-client-ui-skin-* 皮肤,日常使用中会出现一个比较具体的问题:如何在默认界面和这些皮肤之间快速切换。
tiantyu/dsh-skin-toggle 就是为这个场景准备的 DSH 插件:在页面上提供一个可拖动的鲸鱼按钮,用来恢复默认界面或选择已安装皮肤。
这是什么¶
tiantyu/dsh-skin-toggle 是一个 DSH Web GUI 的皮肤管理器,采用 MIT 许可。它不直接提供皮肤本体,而是在页面中增加一个管理入口:
- 左键恢复默认界面;
- 右键列出已安装皮肤并切换;
- 自动识别符合包名约定的客户端皮肤;
- 只在展示层控制皮肤显隐,不触达模型请求。
核心功能¶
下面介绍已核实的能力。
1. 悬浮按钮¶
按钮默认位于页面右上角,也可以按住左键拖到界面上任意位置;松手后固定,并记住位置。刷新后位置保持。
2. 恢复默认界面¶
左键点击按钮,恢复默认界面(无皮肤)。按钮颜色也会体现当前状态:金色表示有皮肤生效,灰色表示默认界面。
3. 切换已安装皮肤¶
右键点击按钮,会弹出皮肤面板,列出所有已安装皮肤。点选即可切换。皮肤互斥,同一时间只生效一个。
4. 自动检测皮肤¶
插件从 Cordis Loader 检测符合 dsh-client-ui-skin-<id> 包名约定的皮肤,并把它们作为可选皮肤。
5. 状态保存¶
当前皮肤选择保存在 localStorage,刷新后保持。
6. 启动时修复加载顺序¶
启动时会有约 9 秒的短时重述,用来修复皮肤与本插件之间的加载顺序竞态。
7. 纯客户端展示层¶
插件属于展示层工具,不触达模型请求;不修改插件状态,只控制皮肤显隐。Loader 只读。皮肤显示名为包名中的 id;宿主不对外提供 skin.json,因此无法取本地化名称。
安装与启用¶
安装¶
在可以访问 dsh 命令的环境中执行:
dsh plugin --profile web add https://github.com/tiantyu/dsh-skin-toggle
启用¶
安装后需要重启 dsh web,并在浏览器中硬刷新:
Ctrl+Shift+R
经过上面的步骤,如果页面上出现鲸鱼按钮,说明插件已加载。
移除¶
如需移除,可以执行:
dsh plugin --profile web remove dsh-skin-toggle
典型用法¶
1、安装插件:
dsh plugin --profile web add https://github.com/tiantyu/dsh-skin-toggle
2、重启 dsh web,然后硬刷新浏览器(Ctrl+Shift+R)。
3、如果默认右上角不方便,按住左键将鲸鱼按钮拖到界面上任意位置,松手后固定并记住位置。
4、左键点击按钮,恢复默认界面。
5、右键点击按钮,弹出皮肤面板,从已安装皮肤列表中选择要切换的皮肤。
6、如果不再需要,执行移除命令:
dsh plugin --profile web remove dsh-skin-toggle
适用场景与注意¶
适合使用 DSH Web GUI、并且希望快速管理多个已安装皮肤的人。它解决的是“切换皮肤”和“恢复默认”的操作问题,不提供模型侧功能。
使用前注意:
- 插件以当前
dsh进程权限运行,安装前应检查源码与许可证; - 本插件为
MIT许可;皮肤本体各自遵循其许可,见各皮肤NOTICE; - 插件只控制皮肤显隐,不修改插件状态,也不触达模型请求;
- 皮肤显示名为包名
id,无法从宿主获取本地化名称; - 安装后必须重启
dsh web并硬刷新浏览器才能看到按钮。
结尾¶
tiantyu/dsh-skin-toggle 的价值很集中:给 DSH Web GUI 提供一个简单的皮肤管理入口,左键回默认,右键切皮肤,位置可拖动且记住选择。
仓库地址:
https://github.com/tiantyu/dsh-skin-toggle
如果当前环境接入了 DSH 插件目录,可检索包名 dsh-skin-toggle。