dsh-web
zhu1090093659/dsh-webDeepSeek Harness(DSH)Web 插件聚合生态包 · 一切皆插件,创意工坊分发(dsh-market.com)
管理 DeepSeek Harness 左下侧栏按钮的插件:拖拽排序、显隐控制,隐藏按钮收进"更多"菜单,可统一按钮高度。
English | 简体中文
A DeepSeek Harness plugin. Takes over the buttons at the bottom of the left sidebar: drag to reorder them, put each one into one of three display states, and give them all the same height.
Tested on DSH 0.1.5-rc.1 (web profile). Also runs on 0.1.2-rc.1 — those two
releases are what dsh.engines.dsh in package.json declares, so a host or
plugin manager can read the same range without parsing this file.
Everything happens in the browser. The plugin re-registers entries in the
sidebar.footer.action slot — a documented slot — and never touches the DSH
core or another plugin's files, so uninstalling it restores the original
sidebar.
Add the plugin:
dsh plugin --profile web add github:lywusichen/dsh-sidebar-buttons
Restart DSH.
Open Settings → Sidebar Buttons.
The sidebar foot is a list slot, so a plugin can register more than one entry
under the same id and the renderer sorts them by priority. This plugin
re-registers each existing entry with priority: -1, which puts its copy in
front of the original, and renders its own wrapper around the original
component. Order, visibility, and size then come from a shared store that every
wrapper reads. Nothing is unregistered, so turning the plugin off returns
control to the originals immediately.
One kind of button does not fit that model: the slot entry is only an anchor and the plugin renders the real button elsewhere in the sidebar, so re-rendering it inside another container moves nothing. Those buttons are relocated as their real DOM node instead — the component stays mounted and the node moves between the sidebar, the More menu, and a hidden park, depending on its state.
data-plugin-entry marker or a built-in declaration table. With neither, it
cannot tell the button apart and leaves it alone.slots.entries and slots.subscribe,
which the plugin relies on to stay aligned with registrations made after it
loads. If a future DSH release changes the list-slot contract, this plugin
needs an update.npm install # esbuild
npm run build # generates lib/client.js
Commit lib/client.js. Git-hosted installs consume the built artifact directly.