兼容宠物包
读取 Codex 宠物包格式,并扫描用户目录、安装目录、资源目录和 `~/.codex/pets`,让素材可以持续扩展。
Case 003 / desktop companion
一个轻量 Tauri 桌面宠物播放器。它把 Codex 宠物包从客户端里独立出来,变成透明、置顶、可拖拽、可托盘控制的 Windows 桌面陪伴。
Summary
这个项目已经走通了从宠物素材规范到 Windows 安装包的完整路径:自动扫描宠物目录,读取 `pet.json` 与 `spritesheet.webp`,提供透明无边框宠物窗口、设置面板、托盘菜单、开机自启和三档性能模式。它更像是一个小而完整的桌面产品,而不是单纯的动画演示。
读取 Codex 宠物包格式,并扫描用户目录、安装目录、资源目录和 `~/.codex/pets`,让素材可以持续扩展。
主窗口无边框、透明、置顶并跳过任务栏,点击会触发挥手或跳跃,拖拽时会切换左右移动动作。
托盘负责显示、隐藏、打开设置和退出;设置面板负责切换宠物、暂停动画、窗口置顶、性能模式和开机自启。
Process
这个项目的关键不是播放一张图集,而是把素材规范、窗口行为、托盘控制和设置面板拼成一个不会打扰工作的桌面陪伴。它要有存在感,但不能挡住用户正在做的事。
读取 `pet.json` 和 `spritesheet.webp`,并扫描多个候选目录,让后续新增宠物不需要改播放器本身。
桌面宠物不能只做到透明置顶,还要考虑拖拽、任务栏、托盘、窗口边界,以及透明区域是否阻挡鼠标。
idle、running、waving、jumping、waiting、review 等状态让它不只是循环动画;性能模式再控制活跃程度。
Design decisions
图集按 8 列 9 行组织,每一行对应 idle、running、waving、jumping、waiting、review 等状态,并用不同帧时长塑造动作节奏。
窗口尺寸只覆盖宠物实际区域,并用透明像素命中检测决定是否穿透鼠标事件,避免一块透明窗口挡住桌面操作。
quiet、balanced、lively 三档只调动作间隔,不破坏单次动画速度。用户可以让它安静待着,也可以让它更活跃。
Current build