functy23/dsh-fullscreen-settings ↗★ 2

dsh-fullscreen-settings

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

Package
dsh-fullscreen-settings
Compatibility
Unverified
Version
0.1.0
License
MIT
Last updated
Sep 29, 2026

Install

This plugin has no verified bundle, or compatibility checks failed. Read the repository notes first. Read the full 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