DSH 会话中,PowerShell(pwsh)工具卡片的样式往往较为单一,缺乏统一的视觉规范和交互细节,影响阅读体验。下面介绍 dsh-pwsh-style 插件,它通过 CSS 注入和 DOM 装饰,为这些卡片提供了一套完整的换装方案。
插件定位¶
dsh-pwsh-style 是由 me9rez 维护的插件,分类为“趣味换装”。它的核心作用是修改 DSH 会话回复中 pwsh 工具卡片的主题、字体与可读性。架构沿袭了 dsh-file-mentions:Host 半负责设置与配置路由,Client 半通过 __ModuleLoader__ bundle 注入 CSS 并可选装饰 DOM。
核心功能¶
- 八套主题:提供
ps-blue、monokai、classic、dracula、nord、tokyo-night、solarized-dark、github-light等预设。这些主题只通过--pwsh-panel-*变量作用于插件新增的元素(徽标、工具条、命令面板),绝不改写原生输出配色。 - PowerShell 徽标:卡片标题行自动注入 PS 图标药丸。
- 复制命令按钮:从
tool/call事件精确读取arguments.command,点击即可复制命令内容,不混入描述、输出或按钮文本。 - 展开/收起按钮:显示完整命令(长命令不再被省略号截断),并展示调用时的 工作目录。
- 字体配置:支持下拉选择系统已安装字体(
font-list枚举),并调整字号(11–16px)与字重(300–700)。 - 零 hash class 依赖:全部钩子基于稳定的
data-*属性,DSH 升级重写 CSS-module 类名也不失效。
安装与启用¶
- 确保系统 PATH 中包含
pnpm(dsh plugin会转发给 pnpm)。 - 执行官方安装命令:
dsh plugin --profile web add "github:me9rez/dsh-pwsh-style#main"
本地开发时也可用 link 方式安装:
dsh plugin --profile web add "link:C:/workspace/dsh-pwsh-style"
- 安装后需要重启
dsh web。该插件的 bundle 层在启动时组合,热更新(HMR)不生效。浏览器端需要硬刷新页面才能看到效果。
配置说明¶
打开 DSH Web GUI,进入 设置 页面,找到本插件的配置卡片。
可配置项包括:
* 启用:开关插件整体效果。
* 主题:下拉选择八套预设之一。
* 字体:下拉框选择系统字体,或选择“默认等宽字体”恢复内置栈(系统字体枚举失败时的回退列表)。
* 字号:11–16px。
* 字重:300(细)/ 400(常规)/ 500(中)/ 600(半粗)/ 700(粗)。
注意:字体配置的唯一例外是,它会整体覆盖官方 token --dsw-font-markdown-code-block-small,以便让命令提示行与输出区跟随所选字体。默认值时不注入任何样式。
工作原理¶
该插件通过 [data-tool="pwsh"] 属性定位卡片。由于 pwsh 在外层被归类为 bash 变体(TOOL_VARIANTS: { pwsh: "bash" }),但它的 entryKey 仍是字面工具名 "pwsh",因此命不中 bash toolview,回退到 GenericToolCard,其根元素稳定打上 data-tool="pwsh"。
命令数据从 tool/call 事件的 arguments 中读取 command / workdir,通过祖先节点的 data-chat-call-id 精确关联到卡片。徽标、按钮、命令面板等节点需要新建,插件使用 MutationObserver 在 React 渲染后动态插入,下一帧自动补回。
结语¶
该插件通过零 hash class 依赖和稳定的属性钩子,确保了在 DSH 升级后的兼容性。对于需要频繁查看 PowerShell 输出或希望统一会话风格的开发者,这是一个实用的配置项。