Control the Web UI left sidebar width: lower the 264px drag minimum and optionally tune the drag maximum and the expanded default width, applied by a startup patch of the ui-layout bundle.
Install
# from GitHub (first run asks for allowBuilds approval — follow the hint, retry)
dsh plugin --profile web add github:garrisonz/dsh-sidebar-width
Any plugin you install runs third-party code with your own permissions — it can read your files, use your credentials, and reach the network, and tool approvals don’t sandbox it. GitHub-sourced plugins also run build scripts at install time. Only install sources you trust, and pin a commit (github:owner/repo#sha).
README
Control the left sidebar (session list) width of the DeepSeek Harness Web UI: lower the drag minimum (official floor 264px), optionally the drag maximum and the expanded default width. Nothing outside the sidebar is touched.
控制 DeepSeek Harness Web UI 左侧会话列表栏宽度:调低拖动下限(官方 264px), 可选调整拖动上限与展开默认宽度。不涉及任何其他功能模块。
Why a patch-style plugin / 为什么是"打补丁"式插件
The sidebar width clamp (clampWidth(px, 264, 420)) and the 280px default are baked
into the client bundle @deepseek-ai/dsh-client-ui-layout/lib/client.js (grid solver
computeColumns + layout store setSidebar/init/toggle). The client runtime exposes
no seam to change them (the store and its actions are private to the bundle), so this
plugin patches the served bundle file once at dsh web startup:
侧边栏宽度钳制与默认值写死在客户端 bundle @deepseek-ai/dsh-client-ui-layout/lib/client.js
中(网格求解器 + layout store),客户端运行时没有可改的接缝,因此插件在 dsh web
启动时修补被服务的 bundle 文件:
- first run backs up to
client.js.dsh-sidebar-width.bak/ 首次运行先备份 - idempotent — a marker makes re-runs no-ops; a dsh upgrade replaces the file and the next startup re-patches / 幂等——升级覆盖文件后下次启动自动重打补丁
- configurable via the plugin row / 全部数值可配置
Config / 配置
| key | meaning / 含义 | default / 默认 |
|---|---|---|
min |
lower drag bound, px / 拖动下限 | 180 |
max |
upper drag bound, px / 拖动上限 | keep bundle value (420) |
defaultWidth |
expanded default width, px / 展开默认宽度 | keep bundle value (280) |
path |
absolute path of the layout client.js / 手动指定 bundle 路径 | auto-locate |
All keys optional. / 全部可选。
Install / 安装
dsh plugin --profile web add dsh-sidebar-width # npm(推荐)
# 或本地开发: dsh plugin --profile web add link:/path/to/dsh-sidebar-width
# 然后重启 dsh web(插件在启动时打补丁)
dsh pluginrequires pnpm on PATH. / 需要 PATH 上有 pnpm。
Tune / 调参
Edit ~/.dsh/profiles/web/cordis.patch.yml (user layer overrides the bundle row):
- id: sidebar-width
name: 'dsh-sidebar-width'
config:
min: 160
max: 420
defaultWidth: 240
Restart to apply. / 重启生效。
Uninstall / 卸载
dsh plugin --profile web remove dsh-sidebar-width
The patch itself stays (harmless); restore manually from the backup: 补丁不会自动回滚(无害),可手动还原:
mv <install>/.../dsh-client-ui-layout/lib/client.js.dsh-sidebar-width.bak \
<install>/.../dsh-client-ui-layout/lib/client.js
Scope / 边界
This plugin's only job is the sidebar width. No UI buttons, no other panels, no settings surface. / 本插件唯一职责就是侧边栏宽度:不加按钮、不动其他面板、不扩功能。
Publish / 发布(for maintainers)
- Push the repo to GitHub and add the
dsh-plugintopic. npm publish(namedsh-sidebar-widthis free on npm as of 2026-08-15).- Open a PR to awesome-dsh-plugin:
add one line under UI Enhancements / UI 增强 in both
README.mdandREADME.zh.md. dsh-market picks the list up automatically.
Links
More in this category
zhu1090093659/dsh-web-ui#packages/dsh-web-ui-all★ 2622
Plugin and skin collection for the DSH Web UI: task board, Git graph, right-side panel, remote mobile UI, pet, live token stats, and a skin center.
ccch1mneyyy/dsh-TUI★ 1231
Claude Code-style full-screen terminal UI: pixel-whale header, live status line, and streaming thought expansion.
omdsh-dev/DSH-better-sidebar★ 1198
Full sidebar workbench with file rendering and editing, terminal, Git, and subagents; third-party plugins can register new tabs.
omdsh-dev/dsh-at-file★ 214
Codex-style `@file` mentions: search workspace files in the composer and attach their contents to prompts.
huiliyi37/dsh-tianshu-tui★ 159
A terminal UI (TUI) for DeepSeek Harness.
Nagi-ovo/dsh-visualize★ 114
In-conversation generative UI: the model renders interactive HTML cards into the chat stream, with streaming preview and sandboxed rendering.