- Главная
- Плагины
- Темы и оформление
- dsh-dune
dsh-dune
avenyq/dsh-dune
Tactile warm-paper skin for DeepSeek Harness: seven built-in palettes plus AI-designed themes, tight typography, spring sidebar motion, switchable streaming-text reveal and comet caret, per-workspace icons, and draggable sidebar entries with a "More" tray.
Установка
dsh plugin --profile web add github:avenyq/dsh-duneREADME
dsh-dune
给 DeepSeek Harness 的暖色皮肤:米纸般的表面、克制的字号与字重、轻微回弹的侧栏动效,外加一套可自定义的工作区图标。
配色不是写死的——内置七套方案,也可以用一句话让 AI 生成一套新的。
从 0.2 开始,两套文字动效也内置进来了:逐字浮现(原 dsh-reveal)和彗星光标(原 dsh-smooth-cursor)。它们和配色一样放在「设置 → Dune」里,开关即时生效,不需要装额外插件。
0.5.1 更新
- 修「DSH 更新后侧栏入口只剩图标、文字不见,入口叠在一起」:DSH 新版给每个侧栏入口包了一层外框(入口按钮 + 原生「从侧边栏取消固定」按钮),入口文字也加了淡入动画。Dune 的「拖动排序 / 收进更多」原来是把入口按钮直接挪来挪去,于是按钮被挪出了外框、外框只剩高度为 0 的空壳,React 又不停把它们放回原位,两边来回拉锯,淡入动画每次都从透明重新开始,文字就一直看不见。
- 现在排序只改外框的 CSS
order,收起只给外框打标记隐藏,不再移动任何 DOM;侧栏只在自身变化时才重新同步,对话流式输出不再触发。 - 被旧版弄乱的侧栏会自动修好:按钮按名字放回各自的外框,React 已经重新画过的旧按钮直接藏掉。拖动排序、拖到「更多」收起、设置里的显示/收起开关用法都不变。
0.5.0 更新
- 接入 DS Bot(Bot 模式):模型菜单里的推理等级位
ds-bot.model.effort挂上同一条鲸鱼滑轨,拖动即改 Bot 自己的思考等级;Bot 的侧栏盖住原生底栏时,头像右侧ds-bot.sidebar.foot补上同一个日夜开关。没装 ds-bot 时两处都不注入,行为和以前一样。 - 逐字浮现不再逐字打出卡片源码:别的插件在
conversation.chat.markdown.fence注册过渲染器的代码块(```vellum 卡片这类)改走官方MarkdownText流式渲染,卡片跟着流式长出来,而不是先把 JSON 一个字一个字铺一遍。 - 问答卡(ask_user_question 的回复气泡)的
dt/dd不再写死主题灰,跟着气泡填充色走,accent 蓝气泡上也看得清。 - 推理滑轨底部的「↶ Default」换成 SVG 重置箭头,不再受字体影响。
0.4.2 更新
- 修「窗口拖不动、只能顶着最上端一条缝拖」:彗星光标那张铺满窗口的透明画布挂在
body上,宿主的body > :not(#root) { -webkit-app-region: no-drag }会把它判成禁止拖动,于是整窗的拖拽区被这一层减掉;画布即使pointer-events:none也挡不住。 - 现在给这层显式写回
-webkit-app-region: initial,对话头顶部的空白行(标题行、视图标签行)恢复可拖,拖拽区不再随光标动效的开关时有时无。
0.4.1 更新
- 「更多」里「已收起」一段的钉子现在是真正的按钮:点钉子把该入口放回侧栏,点行本身仍然是打开面板;钉子有悬停高亮和键盘操作。
0.4.0 更新
- 侧栏的入口列表(插件 / 日晷 / 自媒体工作台…)支持拖动排序:原生 HTML5 拖拽,和下方工作区列表同一套手感——离屏副本当拖拽影像、按悬停行的上下半区判定插到前/后、2px 插入线、落位 200ms ease-out;拖动过的那次点击会被吃掉,不会误导航。
- 拖到「更多」上松手即收进「更多」:该行不再占位置,「更多」菜单里多一段已收起,点一下直接打开对应面板,也可以一次全部放回。
- 顺序与收起状态记在设置里,插件增删时容错(未知 id 丢弃、新入口排在末尾)。
- 设置 → Dune 新增「侧栏入口」一块:拖动排序 / 收进更多两个开关(关掉回到原生行为),下面是每个入口的显示开关和「恢复默认」。
0.3.0 更新
- 日夜开关的描边流光改成永远顺时针:朝夜里走 20°→-30°,朝白天接着走 -30°→-80°,两段正好合成一整圈,来回切换闭合成环。
- 拖动折返时流光不再倒转,改为取顺时针方向的同位相按速率追上去;停稳后落点仍是白天/夜晚的固定位置。
- 推理等级滑轨的轨道与文字改用主题 token,High / Max 标签跟
label-primary混色,亮色主题下不再是一条黑带。 - 修新版 harness 用户气泡文字变黑:旧的
AkCqbG_bubble类已不存在,改用data-message-bubble与 primitives 气泡类两个钩子,气泡里的文件引用 chip 同时补回白字下划线。
0.2.8 更新
- 头像右侧日夜开关采用已确认的精简版,约 52×26px,随底栏尺寸自动垂直居中;目标右侧留白 16px。
- 减轻底座阴影与常态柔光,悬停或键盘聚焦时增强光效。
- 保留果冻牵拉、日夜光位、拖动与键盘操作、主题同步和独立启用开关。
0.2.7 更新
- 侧栏底部头像右侧增加日夜模式开关,接入 DSH 原生主题接口并持久保存;从通用设置改变主题时同步。
- 沿用已确认的果冻前后缘牵拉、粒子太阳/月亮与星点,以及白天上沿暖光、夜晚下沿冷光;光位随拖动进度变化,停稳后不环绕。
- 设置 → Dune → 动效 → 侧栏日夜开关 可独立启用或关闭,默认开启;关闭只移除入口,保留当前主题。
- 支持点击、拖动、键盘 Space/Enter;减少动态效果时静态显示,隐藏页面暂停动画。侧栏收起时隐藏此宽版开关。
0.2.6 更新
- 采用已确认的直航线基线、对齐短刻度与轻微弹性联动,不采用扇形展开。
- 当前刻度向左伸长,相邻刻度轻微上抬、弹性回位,动态保留至少 6px 船体间隙。
- 保留全量轮次、上下安全区、帆船侧偏和局部航线牵扯。
- Default 重置按钮使用固定 14×14 SVG 逆时针箭头,替换受字体影响的 Unicode 字符;重置逻辑不变。
0.2.5 帆船侧偏恢复
- 恢复早期航行 Demo 的 3D 左右侧偏(rotateY),叠加现有平面倾斜。
- 侧偏随滚动速度与方向变化,停滚后平滑回正;遵守减少动态效果设置。
- 全量轮次映射与上下安全距离继续生效。
0.2.5 全量总览修复
- 右侧同屏显示全部对话轮次,包括原生虚拟列表尚未渲染的历史节点;不再截取局部窗口。
- 轮次较多时按比例压缩全部间距,保留内容长短带来的疏密差异;同屏全量优先于固定最小间距。
- 首尾始终可见,直接点击历史节点即可调用原生历史加载和跳转,不需要先滚动航道。
- 沿用上下安全区及原有航行动效。超长历史未加载前使用中性权重,加载后采用真实高度。
0.2.5 边界修复
- 航道限制在对话顶部与实际输入框之间,上下各保留 32px 安全距离。
- 观察输入框、内容区及可视窗口尺寸变化,及时重算可用高度。
- 帆船中心距航道端点至少 20px,给旋转与船体留出空间。
- 全量轮次映射始终保留当前轮次,小船不会因局部窗口遗漏而隐藏。
0.2.5 更新
- 帆船航道根据每轮消息与回复的实际渲染高度分配疏密,轻微左右蜿蜒。
- 航道未满时相邻刻度间距为 28–52px;长回复按对数放缓增长。轮次较多时整体等比例缩小间距。
- 长对话沿用原生轮次列表的历史加载能力,所有节点同屏显示并可直接点击。
- 保留 0.2.4 的弹簧跟随、摇摆、阻尼及帆船附近的牵扯曲线。
- 尚未加载的历史正文使用中性间距,加载后按真实高度重新计算。极矮窗口会适度缩小最小间距。
使用
与 dsh-quiet 是两个独立皮肤,同一时间只启用一个。
不要同时安装 dsh-reveal 或 dsh-smooth-cursor:它们的功能已经内置在本插件里,重复安装会抢同一套渲染位和光标覆盖层。
外观设置
设置 → Dune 里有四块内容。
配色
- 当前方案:显示正在用的配色和色板,可一键恢复默认。
- 预设方案:原色、暖砂陶土、在路上、苔原、海盐、暮紫、琥珀,点一下立即生效,不用重启。
- 让 AI 设计:写一句想要的气氛(例如「雨后的灰绿,配一点旧铜色」),复制指令发给对话里的 AI,它会调用
dsh_dune_design_theme生成并存下来。
明暗跟随「通用」里的主题设置。强调色会派生气泡、发送按钮、链接、引用 chip、侧栏选中态、「深度求索中」那一行的颜色,所以换任何一套配色,界面各处都会一起变。
动效
- 逐字浮现:新回复逐字从模糊过渡到清晰;关掉回到系统原生消息渲染。
- 彗星光标:输入框光标平滑滑动、带渐隐拖尾。点进输入框立刻出现,不用先打字;同时灰色占位提示会收起。光标高度与打字时一致,停手约 0.4 秒后开始呼吸式明暗变化(1.4 秒一个周期,透明度 0.35~1),移动或输入时保持全亮。下面跟三个子项:
- 拖尾:开关渐隐尾迹。
- 颜色:默认「跟随主题」,取当前配色的强调色,换配色时自动同步;也可以从 8 个预设色里挑,或用取色器自定义。
- 粗细:细 / 中 / 粗。
- 侧栏动效:侧栏收起与展开时的弹性滑入。
- 帆船轮次导航:右侧轮次导航改用一条细航线,帆船会跟随当前阅读位置移动;点击与历史加载仍使用 DSH 原生日志。
- 推理等级滑轨:打开模型菜单后直接拖动鲸鱼,在 Low / High / Max 之间切换,不再进入第二层。Low 为 DeepSeek 蓝色,High 为粉紫色;拉到 Max 会点亮并流动闪烁的像素星河,同时出现拍岸式星芒。
这两项可以分别关闭;关闭后分别回到原生轮次导航和原生二级推理菜单。
材质
- 玻璃质感:输入框的半透明玻璃效果(背景模糊 + 内高光)。
- 背景纵深光:会话区自上而下的轻微渐变。
- 隐藏滚动条:藏掉系统滚动条。
- 紧凑圆角:把界面圆角收紧到 6 / 10 / 14 / 20。
排版
- Dune 排版:正文 500 字重、24px 行高与紧凑段落间距。
- 自定义工作区图标:用 Phosphor / Kubai 图标替换默认文件夹图标。
所有开关默认全开,观感就是 Dune 原本的样子;关掉哪一项就回到系统原生表现。
配色的一条规则
表面色(bgBase / bgLayer1~3 / bgOverlay)只在画布上下浮动 2~3 个色阶,不要用纯白。
代码块、工具卡这类浮层如果铺 #FFFFFF,压在米色或中性画布上会差十几个色阶,看着像一块发光的白卡片,和周围不是同一种材质。需要「更亮」时提一个浅阶即可,不必冲到纯白。
AI 直接调用
工具 dsh_dune_design_theme 接受一段 JSON:
{"name":"暖砂陶土","colors":{"accent":{"light":"#A9603E","dark":"#D18C66"}}}
每个槽给 light 与 dark 两个十六进制颜色,未提供的槽沿用默认值;reset=true 恢复默认。
可用槽位:bgBase、bgLayer1、bgLayer2、bgLayer3、bgOverlay、sidebar、textPrimary、textSecondary、textTertiary、textCaption、border1、border2、border3、border4、hover、accent、link、error、warning、success、idle。
link 用来单独指定链接色(不给就跟随 accent);warning 可以用来承载一个第三色,比如「在路上」里那条路牌的芥末黄。
工作区图标
把鼠标移到侧栏的工作区行上,点右侧的 …,菜单里在「重命名」和「删除工作区」之间多出一条 「图标 ›」。指向它,右侧展开第二层面板:上面一排颜色(含「跟随主题」),下面 51 个 Phosphor 图标(21 个常用 + 30 个有趣),底部「恢复默认」。
选中即保存,按工作区 ID 记录,重命名工作区不会丢。文件夹类图标在行展开时会切换成打开态。
也可以交给 AI:dsh_dune_set_workspace_icon 接受工作区名称、路径或 ID,配 icon 与 color,reset=true 清除。
已知取舍
- 内置的逐字浮现不声明
conversation.chat.reasoning.body/conversation.chat.message.images两个子渲染位——chat 自己也声明了它们,重复声明会让 chat 的原生渲染位注册失败,那样关掉逐字浮现就回不到原生界面。代价是:展开的思考正文由本插件自己渲染 Markdown;消息里的图片按 DSH 的约定,在没有安装图库渲染插件时省略。 - 关闭逐字浮现后历史消息按原生渲染重绘,当前正在流式输出的那一条会闪一下。
维护
lib/client.js:配色、字体、动效、材质开关、侧栏动效、图标面板与设置页。lib/index.js:可持久化配置与两个 AI 工具。fonts/:Outfit 字体,SIL OFL 许可,见fonts/OFL.txt。
图标来自 Phosphor Icons(MIT)。字体为 Outfit(SIL OFL)。 逐字浮现最初来自 dsh-reveal;彗星光标移植自 dsh-smooth-cursor(Lacquervii,MIT),其效果灵感来自 VSCode 的 smooth cursor 与 Obsidian 社区的 animated-cursor(Kotaindah55,MIT)。本项目以 MIT 许可发布。
Похожие плагины
dsh-wallpaper-engine
elysia395/dsh-wallpaper-engine
dsh-deep-whale (maid-atelier)
small-tailqwq/dsh-deep-whale
dsh-deep-whale
small-tailqwq/dsh-deep-whale
dsh-claude-style
nwflower/dsh-claude-style