dsh-fullscreen-settings:把 DSH 设置弹窗变成 Codex 风格整页设置页

前言

在使用 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 配置或通过插件管理界面卸载,刷新页面后恢复默认居中弹窗。

资源

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜