functy23/dsh-fullscreen-settings ↗★ 2

dsh-fullscreen-settings

把 DSH 的设置弹窗改成 Codex 风格整页全屏设置页 — Codex-style full-page settings for DeepSeek Harness. 适合喜欢Codex风格全屏设置界面、追求视觉整洁的用户。

패키지
dsh-fullscreen-settings
호환성
미검증
버전
0.1.0
라이선스
MIT
최근 업데이트
2026. 9. 29.

설치

검증된 bundle이 없거나 호환성 검사에 실패했습니다. 먼저 저장소 설명을 읽어 주세요. 전체 README 읽기 ↗

dsh-fullscreen-settings

dsh-fullscreen-settings

把 DSH 的设置弹窗,变成 Codex 那样的整页全屏设置页。

Project Language Top Language Platform

License

Downloads Stars Repo Size Contributors

Issues • Changelog • 中文 / English


效果

改动前改动后
形态屏幕中央 800×800 的弹出式 modal,背后有遮罩铺满整个窗口的整页设置,没有遮罩
退出右上角一个小叉号左上角一整行「← 设置」
左栏188px 分类栏248px 分类栏,带发丝分隔线
内容800px 宽,行拉满单列最大 880px,长行不再被拉得过长

左上角的「← 设置」是一个按钮:箭头和标题同处一个色块,鼠标悬停时整行高亮, 和主界面左栏的「新会话」「插件」条目同款;点箭头或点文字都返回上一页。

macOS 上顶部会自动让开红绿灯,那条留白同时是窗口拖动区;窗口进入全屏时留白自动收起。

安装

DSH NEXT 的 desktop profile 由 Electron 应用独占管理(dsh plugin --profile desktop … 会被拒绝:profile desktop is managed exclusively by the Electron application), 按下面任一方式安装:

方式一:应用内安装(推荐)

在侧栏「插件」页的安装输入框里填:

github.com/functy23/dsh-fullscreen-settings

github:functy23/dsh-fullscreen-settings 同样可以。

方式二:手动挂载(本插件当前就是这么装的)

在 ~/.dsh/profiles/desktop/cordis.patch.yml 末尾追加:

- insert:
    - id: ui-fullscreen-settings
      name: /绝对路径/dsh-fullscreen-settings/lib/index.js

其他 profile

web / dsh-tui profile 不受此限制,可以直接用 CLI:

dsh plugin --profile web add github:functy23/dsh-fullscreen-settings

无论哪种方式,装完都要刷新界面(菜单「DSH NEXT → 重新加载界面」,或 Cmd+R)—— profile patch 会让宿主热重组,但客户端模块图是在页面加载时取得的。

原理

宿主半边是空的(lib/index.js 只有空 apply()),全部效果在浏览器半边完成, 只做两件事:

  1. 一段 CSS,锚在运行版产品自带的属性 div[data-shortcut-modal="settings"] 上, 结构用元素选择器(> nav / > div),不依赖 CSS Modules 的哈希类名, 产品换构建也不会失效。
  2. 遮蔽 settings.header 这个 single 槽的官方占用者:single 槽的规则是 「最低 priority 渲染」,官方占用者是 priority 0,本插件用 -1000 顶掉它, 改渲染左上角那一个整行按钮。

关闭动作直接调 @deepseek-ai/dsh-client-ui-primitives 的 closeTopModal() —— 这正是官方设置快捷键关闭弹窗时用的同一个函数;失败时退回点击官方关闭按钮。

不修改、不打包官方任何文件,DSH 升级后即使某个细节变了,最坏情况也只是样式回退。

目录结构

dsh-fullscreen-settings/
├─ lib/
│  ├─ index.js        宿主半边:空 apply()
│  └─ client.js       浏览器半边:样式 + 「← 设置」按钮
├─ tests/
│  └─ client.test.mjs 零依赖单元测试(node --test)
├─ assets/icon.svg
├─ package.json       dsh.client 声明 + test 脚本
└─ README.md / README.en.md / CHANGELOG.md / LICENSE

lib/ 就是源码,没有构建步骤;改完刷新界面即可。

开发

cd dsh-fullscreen-settings
node --test tests/            # 4 个用例:注册 / 样式 / 整行按钮 / 兜底
node --check lib/client.js

兼容性

按 DSH 0.2.0-rc.1(DSH NEXT 2.0.16-next,窗口 titleBarStyle: hiddenInset, 红绿灯 x=16 y=18)实测。用到的都是产品自有属性、插槽契约与主题变量 (--dsw-alias-* / --dsh-frame-*),跨主题安全。

回滚

删掉 cordis.patch.yml 里那段 - insert:(或在该 profile 的插件页里卸载), 刷新界面即可;设置会回到原来的居中弹窗。

License

MIT © 2026 Functy