为什么会出现两只大肥鱼
适用范围:下文依据历史 issue 整理。原因、绕过方法与限制需结合报告版本判断;本文没有在所有平台实机验证,也不把 issue 关闭当作已发布修复。
全新安装后看到两只一模一样的桌宠,不是装了两遍,也不是装错了。默认配置让同一只宠物在两个地方各渲染了一次。
一句话解决:把 display 从 "both" 改成 "desktop"
(只要桌面那只)或 "web"(只要网页里那只)。
最常见的原因:display 设成了 both
dsh-pet 有两条渲染通道:
| 通道 | 宠物画在哪 |
|---|---|
web | DSH 网页界面里(overlay 层) |
desktop | 桌面上独立的透明窗口(由 helper 进程创建) |
display: "both" 的意思是两条通道都开——
于是同一只宠物在网页里出现一次,在桌面上又出现一次。
麻烦的是,这正好是全新安装的默认值(assets/config.jsonc 里
display 默认就是 "both",缺字段时也回退到 both)。
所以新用户第一次启动就看到两只,很自然会以为装重复了。
怎么改
方式一:设置页
DSH 设置 → 桌宠配置 → 显示位置 → 选「仅桌面」或「仅网页」。
方式二:改配置文件
# 位置
~/.dsh/dsh-pet/main-config.jsonc
# Windows
C:\Users\<你的用户名>\.dsh\dsh-pet\main-config.jsonc
{
"pets": [
{
"id": "main",
"display": "desktop" // ← 从 "both" 改成 "desktop" 或 "web"
}
]
}
保存后完全退出 DSH 再启动。
该选哪个?
想要宠物浮在所有窗口上面(包括你切到别的应用时也能看到)→ 选 desktop。
只想要它在 DSH 界面里待着、不占桌面 → 选 web。
另外两种情况
① 同时开着两个 DSH 实例
如果你同时跑了 DSH Desktop 和 DSH Web(或者开了两个桌面窗口), 两个宿主会各起一个 helper 进程,桌面上就会出现两只。
原因:helper 没有跨进程的单实例锁,两个宿主互相不知道对方存在。
解决:只保留一个宿主。关掉多余的那个,桌面上那只多余的会跟着消失。
② 改完大小后短暂出现两只
在设置里改完宠物大小、点保存的瞬间,可能会看到第二只闪现一下,然后原来那只才变成新尺寸。
这是预期行为,不是 bug——新窗口先建出来,旧窗口后销毁。 一两秒内自己就恢复正常,不用管。
怎么快速判断是哪一种
-
看两只的位置
两只完全重合或紧挨着、动作同步 → 是
both双通道渲染(最常见)。
两只离得很远、能分别拖动 → 大概率是两个宿主各一只。 -
查进程数
# Windows:任务管理器搜 electron.exe,数一下有几个 helper # macOS / Linux: ps aux | grep electron-helper | grep -v grep | wc -l多于 1 个 → 两个宿主的问题。
-
查配置
curl http://127.0.0.1:<你的端口>/dsh-pet-7340/config | grep display返回
"both"→ 就是双通道渲染。
资料来源(历史报告):#64、#108、#123、#126、#212、#232、#271。整理日期:2026-11-03,适用版本及证据限制见正文。