前言¶
在使用 DeepSeek Harness (DSH) 时,默认的设置弹窗通常是一个固定在屏幕中央的模态框,背景有遮罩。这种方式在查看长列表或复杂配置时,视野受限,且容易遮挡主界面。
dsh-fullscreen-settings 插件将这个体验改成了类似 Codex 的整页全屏设置页:窗口铺满整个屏幕,移除遮罩,左上角提供显眼的返回按钮,内容区采用单列布局。
是什么¶
这是一个把 DSH 设置弹窗重构为全屏页面的插件。
- 作者:functy23
- 许可证:MIT
- 定位:UI 样式增强,不改变逻辑,不修改官方源码。
核心功能¶
布局与视觉¶
- 全屏铺满:设置页铺满整个窗口,移除了原本的背景遮罩。
- 左上角导航:左上角增加了一个整行宽度的“← 设置”按钮,箭头与文字同色块,点击返回。这与主界面左侧菜单的交互逻辑一致。
- 左右分栏:左侧分类栏宽度为 248px,带发丝分隔线;右侧内容区单列最大宽度 880px,长行文字不再被拉伸过长。
- 系统级适配:在 macOS 上,顶部会自动留出空间给红绿灯(红黄绿按钮),该留白同时也是窗口拖动区;窗口进入全屏时,留白自动收起。
技术实现¶
- 无哈希类名依赖:样式锚定在官方的
div[data-shortcut-modal="settings"]属性上,使用元素选择器。即使官方产品更换构建工具或 CSS Modules 策略,插件样式通常也能保持生效。 - 不修改官方文件:插件不修改、不打包官方任何文件。通过 Cordis Slot 机制修改渲染逻辑。
- 优先级控制:通过设置 slot priority 为
-1000,覆盖了官方默认的settings.header渲染。 - 关闭逻辑:关闭动作直接调用官方的
closeTopModal()函数,保证与快捷键关闭行为一致。
安装与启用¶
执行以下命令将插件安装到指定的 profile:
dsh plugin --profile <profile> add dsh-fullscreen-settings
安装完成后,刷新页面或重启 DSH 客户端即可生效。
开发与测试¶
该插件无需构建步骤,源码位于 lib/ 目录。
在开发过程中,可以通过以下命令进行测试和校验:
# 运行单元测试
node --test tests/
# 校验代码语法
node --check lib/client.js
兼容性与回滚¶
- 兼容版本:按 DSH 0.2.0-rc.1 实测。
- 升级安全:不修改、不打包官方文件。即使 DSH 升级导致样式细节变化,最坏情况也只是样式回退到默认状态,不会破坏功能。
- 回滚:删除对应的
cordis.patch.yml配置或通过插件管理界面卸载,刷新页面后恢复默认居中弹窗。