dsh-sidebar-compact
yunxiao11xie/dsh-sidebar-compact
侧栏紧凑化:宽栏模式下把全局面板行(插件 / 插件市场 / 自动化任务 / 上下文洞察 / Dream 记忆 / 更多)和底部功能入口(论文伴读、远程控制等)排成每行两个,把竖直空间还给工作区会话列表;收起成图标列时保持官方竖排布局。纯 CSS,不联网、不调模型。
安装
dsh plugin --profile web add github:yunxiao11xie/dsh-sidebar-compactREADME
dsh-sidebar-compact
Two sidebar rows per line, so the workspace session list gets the height back.
The shipped sidebar stacks its global panel rows (插件 / 插件市场 / …) and its footer actions (论文伴读 / 远程控制 / …) one per line. In wide mode this plugin packs each list two per line:
before after
插件 插件 | 插件市场
插件市场 自动化任务 | 上下文洞察
自动化任务 Dream 记忆 | 更多
上下文洞察
Dream 记忆
更多
- Panel rows: packed two per line only while the rows render their labels (wide sidebar). The collapsed icon rail keeps its shipped vertical layout.
- Footer actions: the slot renderer wraps every entry in one anonymous container; that wrapper becomes a flex row of two equal halves. The collapsed rail keeps the centered column.
Everything is CSS: no host service, no network, no model call.
Requirements
- DeepSeek Harness with the Web UI,
engines.dsh>=0.2.0-rc.1 || >=0.2.1-rc.1 || >=0.2.2-rc.1. - Works with any number of entries: extra rows simply wrap to the next line.
Install
dsh plugin --profile desktop add dsh-sidebar-compact
or add it to the profile by hand:
// <profile>/package.json
{
"dependencies": { "dsh-sidebar-compact": "link:/path/to/dsh-sidebar-compact" },
"dsh": { "profile": { "bundles": ["...", "dsh-sidebar-compact"] } }
}
then restart the desktop app (a new bundle needs a kernel restart; edits to an already loaded plugin only need a page refresh).
Maintenance note
The rules target the shipped sidebar's CSS-module prefix wtg9ga_ (verified on
DSH 0.2.2-rc.2; older releases used csseja_). Search the packaged client
bundle (@deepseek-ai/dsh-client-ui-sidebar/lib/client.js) and update
SIDEBAR_PREFIX in client.js after a DSH upgrade.
Two 0.2.2 changes the rules account for:
- The panel row DOM deepened to
nav.panelList > div.panelEntryWide > button.panelRow > span.panelTitle, so the wide-mode test uses a descendant:has(.panelTitle)instead of a fixed child depth. flex-directiononpanelListis overridden by shipped layout rules, so the two-column layout is forced withdisplay: gridinstead of flex.
dsh.client.inject points at @deepseek-ai/dsh-client-ui-conversation (the
first-loaded client surface) so the stylesheet mounts early and reliably.
License
MIT