← Back to home@xingyingyuzhui

dsh-chat-tune

DeepSeek Harness plugin: tune chat font, width, line height, and paragraph spacing

Stars
0
Language
JavaScript
Created
Aug 17, 2026
Updated
Sep 11, 2026
GitHub repo

Introduction

dsh-chat-tune · 对话区界面设置

DeepSeek Harness Web 插件:在 设置 → 通用设置 里、「外观」正下方增加「对话区界面设置」,调节会话区的字号 / 字体 / 行距 / 段距 / 显示宽度,并可选 滚动时钉住本轮用户消息(类似 Cursor)。不改官方组件——通过覆盖官方 CSS 变量 seam + Client 叠加层生效。

设置 → 通用设置 → 对话区界面设置

安装

前置:本机已能运行 dsh web。

dsh plugin --profile web add github:xingyingyuzhui/dsh-chat-tune

装完重启 dsh web。打开 设置 → 通用设置,在「外观」下面就是本插件的控件。

本地开发:

dsh plugin --profile web add link:/abs/path/to/dsh-chat-tune

能力

项说明
字号小 13 / 偏小 14 / 标准 16 / 大 18 / 特大 20 / 自定义(8–48px)
字体系统默认 / 无衬线 / 衬线 / 等宽 / 苹方 / 思源黑体
行间距紧凑 1.4 / 适中 1.6 / 标准 1.75 / 宽松 2.0 / 很松 2.4 / 自定义(1.0–3.0)
段落间距紧凑 8 / 偏紧 12 / 标准 16 / 宽松 24 / 很松 32 / 自定义(0–80px)
显示宽度窄 640 / 标准 748 / 宽 900 / 超宽 1100 / 自定义(480–2000px)
代码块跟随打开时代码块改用所选字体(默认保持等宽)
输入框跟随打开时底部输入框宽度同步内容宽度(默认开启)
输入框边缘调宽开启后,宽度拖拽把手仅在底部输入框两侧生效,消息区中部不再误触(默认开启)
滚动钉住本轮用户消息sticky 本轮用户行;通过 shadow conversation.chat.node 把时间/复制放进蓝气泡内(平时 hover 出时间;钉住时常显);超长限高(默认开启)

原理

  • 正文字号/字族/行距覆盖官方 seam:--dsw-font-markdown-base / -h1..h4(完整 font 简写)
  • 段落间距改消息列里 p / 列表 / 标题的 margin-block
  • 内容宽度:composerFollow 开启时写在会话根 [data-phase] 上的 --dsh-chat-content-width 与 --dsh-composer-card-max-width;关闭时只改消息列
  • 输入框边缘调宽:composerWidthOnly 开启时裁剪官方 [data-width-handle] 热区,并用 ResizeObserver 同步 [data-composer-seat] 高度到 --dsh-chat-tune-handle-height
  • 钉住本轮用户消息:priority: -1 shadow 官方 user/steering 节点,时间+复制进气泡 DOM;控制器只给当前轮 flow 行打 sticky-head 并 position:sticky(不再用 CSS grid 硬叠官方 IconActions)
  • 代码字体:--ds-font-family-code
  • 选择器挂在 body[data-dsh-chat-tune] 下
  • 偏好存 localStorage(dsh-chat-tune:prefs)

卸载

dsh plugin --profile web remove dsh-chat-tune

开发

npm run build   # 生成 client.js(改 chat-tune-*.mjs 后)
npm test        # build:check + node --test

License

MIT