给 DSH Web GUI 的聊天组件加一枚「一键收缩」
点一下把组件藏起来,角落浮出恢复球;点球即还原,球自己消失。
English | 中文
> 纯浏览器侧插件,**零 DSH 源码改动**。不 patch 本体、不注入 bundle、不起宿主服务。 ## 它解决什么 小屏上输入框和工具条常驻,能看的对话就少了那么一截。 本插件在输入框工具行最右侧放一枚 **⌄** 按钮:点一下整条组件收起,纵向空间全给对话; 角落留一颗恢复球,随时点回来。 收起是 **CSS 隐藏,DOM 不卸载** —— 草稿、贴的图、光标位置全都留着,展开回来接着写。 ## 交互 | 动作 | 结果 | | --- | --- | | 点输入框工具行最右侧的 **⌄** 按钮 | 目标组件收起(草稿 / 图片 / 光标位置全部保留) | | 收起后 | 视口角落浮出 **恢复球**(对话气泡图标) | | 点恢复球 | 组件放回来,球自己消失 | | 右键恢复球 | 在「输入框 / 整个对话区」之间切换收缩目标,并弹一条轻提示 | | `Alt+H` | 键盘切换收起 / 展开 | 状态(是否收起、收缩目标、悬浮球位置)写 `localStorage['dsh.chatCollapse.v1']`,刷新后保持。 ## 收缩目标 | target | 藏什么 | 靠什么定位 | | --- | --- | --- | | `composer`(默认) | 只藏输入框那一条座位 | `[data-composer-seat]` | | `chat` | 藏整个对话区(消息 + 输入框 + 会话头) | `[data-conversation-scroll]` 的父节点 | 显隐由 `` 上的 `data-dsh-cc` / `data-dsh-cc-target` 两个属性 + CSS 选择器驱动 —— **不给官方节点加类名**,React 重渲染抹不掉。 ## 安装 ```bash dsh plugin --profile web add github:cx2002302-lang/dsh-chat-collapse ``` 装完**重启一次 dsh web**(新 bundle 要进客户端启动图),再刷新页面: ```bash # 服务名按你自己的部署改;下面是 systemd 用户服务的写法 systemctl --user restart dsh-web.service ``` 刷新后:输入框工具行最右侧即出现 ⌄ 按钮。 本地开发时也可以直接指向目录: ```bash dsh plugin --profile web add /path/to/dsh-chat-collapse ``` ## 卸载 ```bash dsh plugin --profile web remove dsh-chat-collapse ``` 卸载时 `ctx.effect` 的回收函数会摘掉自己注入的 `