概览
dsh-macos-desktop
README / ZH
插件文档
目录摘要
dsh.pub 核对固定版本的组合包契约、运行时事实与分发语义;完整 README 请查看源仓库。
在 GitHub 阅读完整 READMELIMITATIONS
已知限制
### 12.1 已实现 - **左右分栏布局(核心)**:左侧 = macOS 桌面(壁纸/桌面图标/窗口系统),右侧 = DSH **官方对话界面**(CSS 覆盖成 macOS 风格,功能全保留),常驻右侧不再藏进「显示原始界面」。**顶部菜单栏横跨全屏,Dock 悬浮于底部之上**(不占空间,左右纵向都占满);中间可拖动分隔条调整两侧比例(20%–80%)。 - **底部 Dock(悬浮 + 精致图标)**:像素图标(此电脑/文件/文档/终端/浏览器/知识库/AI 生图/计算器/回收站/设置),**已移除「AI 助手」重复入口**(原生对话常驻右侧,是唯一对话入口);图标**可添加/删除**(右键移除,+号菜单加回,持久化到 localStorage)。图标用「圆角矩形 squircle + 上下渐变 + 居中像素 glyph + 顶部高光」重绘,参考 macOS 图标质感。 - **现代 macOS 风格(Big Sur / Sonoma 质感)**:更大圆角(窗口 16px/卡片/按钮 8–12px)、更高毛玻璃(blur 24–34px + saturate 170–185%)、蓝色 accent `#0a84ff`、柔和渐变壁纸(内置 + 用户照片)、细腻双层阴影、系统字体(SF Pro/Segoe UI)、窗口红黄绿「交通灯」按钮、Dock squircle 图标带高光。 - **官方对话界面风格化(稳健版)**:用 `body{--dsw-alias-*:...!important}` 覆盖 DSH 主题 token(背景/文字/边框/品牌/状态色全套),`color-scheme:light`,右侧真正变浅色 macOS 风,功能(对话/工具轨迹/token/权限/模式切换)全保留。**分栏选择器改用结构选择器 `*:has(> [data-shell-overlay])`**(降级保留 `.pI_x6G_frame`),不再依赖会随 DSH 构建变化的哈希类名。 - 桌面文件 = **`desktop/` 文件夹**内容(隔离目录,绝不显示真实系统目录);**3 秒轮询 + 右上角「↻」手动刷新按钮**,系统里放进/删除/重命名文件即时反映;**每个文件浏览窗口独立维护 cwd + 乱序响应丢弃守卫**,点不同文件夹/此电脑不会串目录;右键菜单(新建/排列/刷新 + 文件:打开/用 AI/重命名/删除/**设为壁纸**,文件窗口与桌面图标均可用)。 - **回收站(废纸篓)**:删除改为「移到回收站」(`workspace/.trash/`),可还原/清空;宿主持久化映射元数据。 - **复古计算器**:加减乘除,Dock 一键打开。 - **菜单栏像素数字时钟**:HH:MM:SS 实时刷新。 - **顶栏 Big Sur 菜单 + 天气**:菜单重构为「🍎 + DSH 桌面 + 文件/显示/窗口/帮助」分组(把新建/刷新/最近打开/排列方式/设置/关于本机/折叠桌面等合理归类,去掉重复标签);右侧显示**郑州实时天气**(Open-Meteo 免费 API,温度 + 天气图标,失败/离线优雅降级为「—」)。 - **浏览器外部打开**:工具栏常驻「外部打开」按钮(当前 URL 一键唤起系统浏览器,弹确认防误触);被拒嵌入页的「在外部浏览器打开」同样确认后打开。 - **对话 @ 知识库弹窗**:输入框输入 `@` 弹出知识库选择列表,点选插入 `@库名 `;保留手动输入 `@库名` 方式兼容。 - **知识库管理修复**:创建/删除/重命名/切换/搜索逻辑重构(`cur` 派生自 id 消除竞态),并修复「留空目录会错误建到 workspace 根」的宿主 bug(现在自动建到桌面子目录)。 - **PDF/Word 预览增强**:PDF 走 iframe + 顶部「在新窗口打开」;Word 用 `mammoth.convertToHtml` 渲染**可读 HTML**(标题/列表/表格保留),不再是纯文本。 - **文档办公富文本**:新建文档带格式工具栏(字号 12/14/16/18/20pt、加粗、斜体、自由换行),格式真实落盘——`.docx` 用 run 的 `bold/italics/size`、`.pdf` 用 Helvetica Bold/Oblique + `fontSize` 内联排版、`.pptx` 用 pptxgenjs 生成(标题页 + 每段一页),`.txt` 纯文本丢格式(正常)。格式选择器新增「PPT (.pptx)」。 - **趣味彩蛋**:开机加载随机复古梗(「正在转动 1.44MB 软盘…」「正在给鲸鱼喂鱼…」)、回收站俏皮文案、Dock hover 带梗提示、终端错误语气轻松化、**开机鲸鱼连续点击冒泡吐梗**。 - **用 AI 看图(3.1 已接入)**:右键图片 →「用 AI 看图」→ 宿主跑 `modlens` 输出结构化 JSON(OCR/版面/语义)→ 弹窗展示 + 「发给 AI 助手」。需 `npm i -g @liustack/modlens`。**调用方式已修复**:不再依赖 PATH 里的 `modlens.cmd`(Windows 下找不到导致误报「未安装」),改为 `createRequire` 精确解析 `@liustack/modlens/dist/main.js` 后用 `node <main.js> -i <图片> --timeout 180000` 调用,并正确解包 `JSON.result`;失败提示会引导你跑 `npx @liustack/modlens doctor` 检查视觉引擎(Gemini key / Antigravity `agy`)是否配好。 - **AI 生图(3.2 已接入)**:Dock「AI 生图」app——提示词 + 比例(1:1/16:9/4:3)+ 风格(插画/像素/复古/写实)+ 可选参考图(经 modlens 视觉描述增强 prompt),走 DashScope 通义万相 `wanx-v1` 文生图(异步任务轮询),需 `DASHSCOPE_API_KEY`。 - 对话窗口(自定义 ChatApp)保留:官方 mux 事件流实时推送、Markdown、代码复制、工具折叠、会话重命名/搜索、模型切换、@知识库 注入、用 AI 处理。 - **任务进度条 + Token 组件数据源**:直接从 DSH 官方 `sessions` 服务的 mux 快照取数(订阅当前会话 `snapshot`,累加 assistant 节点 `usage` 得 token、统计 `runningCalls`/`tool-result` 得进度),**不再依赖自定义 ChatApp 窗口**——原生对话常驻右侧后这两个小组件依然实时更新;进度条窗口只在「开机完成后且任务进行中」出现,不再在加载界面弹出。 - **桌面 3 秒轮询改为「变更检测」**:`loadDesktop` 每次拿到目录列表后先算签名(`type:path` 拼接),内容未变就不 `setState`——避免每 3 秒整棵桌面子树重渲染,加载更顺、CPU 更低;文件增删/改名仍即时反映(签名变了才刷新)。 - **whale-girl 宠物层级修复**:桌面 overlay 与 whale-girl 宠物同处 `z-index:2147483000`,DOM 顺序可能把宠物埋到桌面下;本插件加 `[data-whale-girl]{z-index:2147483600!important}` 让宠物**永远浮在最上层**,无论拖到哪都可见、可点。 - **Spotlight 搜索(⌘K / Ctrl+K 或菜单栏🔍)**:居中出现搜索框,搜 App + 搜文件(复用 `/api/search`),回车/点击直接打开,Esc 关闭。 - **深色模式**:设置里新增「深色模式」主题,桌面与右侧官方对话一起变暗(`body.dsm-dark` 覆盖 `--dsw-alias-*` + `color-scheme:dark`)。 - **Dock 分组分隔线 + 回收站角标**:此电脑与回收站/设置之间加竖分隔线;回收站非空时 Dock 图标右上角亮红点角标(10 秒轻轮询 + 删除/还原/清空即时刷新)。 - **迷你日历**:点菜单栏时钟弹出当月日历(今天高亮、跨月灰显)。 - **窗口最小化动效**:最小化时窗口缩放淡出「缩进 Dock」,点 Dock 图标弹回(`transition` + `dsm-minimized`,关闭仍即时隐藏)。 - **拖拽上传到桌面/文件窗口**:本地文件拖进桌面或文件窗口即上传(宿主新增 `/api/upload`,raw body 二进制 + `dir`/`name` 查询参数,仍走 `withinRoot` 校验)。 - **多窗口**:文件/浏览器/终端/编辑器/预览/文档等支持**开多个窗口**(双击不同文件夹/文件各自开新窗,标题带文件名、级联错位);设置/计算器/回收站/知识库/文档办公/生图/对话仍是单实例。 - **桌面图标拖动 + 网格吸附记忆**:桌面右键「排列方式」关掉「自动排列」后,图标可拖动,松手吸附 96px 网格并记住位置(localStorage);重开「自动排列」恢复自动排序。 - **窗口边缘吸附(Aero Snap)**:拖动窗口到桌面区顶部=最大化、拖到左/右边缘=半屏。 - **便签增强
