DSH HUB
HomePlugin StorePlugin PacksCommunityRankingsResourcesPublish Guide
Plugin source
Back to catalog

functy23 /

functy23/dsh-fullscreen-settings

Verified

把 DSH 的设置弹窗改成 Codex 风格整页全屏设置页 — Codex-style full-page settings for DeepSeek Harness

★ 2 Stars1 Forks0 IssuesN/A Community rating0 Confirmed installs
View on GitHub
READMESource: main@d29ce57e
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 上顶部会自动让开红绿灯,那条留白同时是窗口拖动区;窗口进入全屏时留白自动收起。

安装

从 npm 安装(推荐)

dsh plugin --profile <profile> add dsh-fullscreen-settings

也可以直接 npm i dsh-fullscreen-settings 单独拿包。

从 GitHub 安装

dsh plugin --profile <profile> add github:functy23/dsh-fullscreen-settings

把 <profile> 换成要装的那个(例如 web)。

如果该 profile 由宿主客户端托管、CLI 拒绝安装,就在客户端的插件页里填包名 dsh-fullscreen-settings(或仓库地址 github.com/functy23/dsh-fullscreen-settings); 或者直接改 profile —— 在 ~/.dsh/profiles/<profile>/cordis.patch.yml 末尾追加:

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

装完刷新页面即可;如果没生效,重启 DSH 客户端。

(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)
├─ icon.svg            插件列表图标(package.json 的 icon 字段指向它)
├─ assets/             README 展示图
├─ cordis.patch.yml   profile 层补丁:安装器靠它把插件挂进 profile 树
├─ package.json       dsh.bundle / 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 实测。用到的都是产品自有属性、插槽契约与主题变量 (--dsw-alias-* / --dsh-frame-*),不依赖某个具体的桌面外壳。

回滚

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

License

MIT © 2026 Functy

—/ 5

No ratings yet

Verified DSH bundle

Commit d29ce57e47e4

Community comments

No comments yet. Be the first to write one.

DSH HUB

A community index for DSH plugins. Not an official GitHub or DeepSeek AI product.

CommunityResourcesAPIAbout