为什么会出现两只大肥鱼

本页目录

适用范围:下文依据历史 issue 整理。原因、绕过方法与限制需结合报告版本判断;本文没有在所有平台实机验证,也不把 issue 关闭当作已发布修复。

全新安装后看到两只一模一样的桌宠,不是装了两遍,也不是装错了。默认配置让同一只宠物在两个地方各渲染了一次。

一句话解决:把 display 从 "both" 改成 "desktop" (只要桌面那只)或 "web"(只要网页里那只)。

最常见的原因:display 设成了 both

dsh-pet 有两条渲染通道:

通道宠物画在哪
webDSH 网页界面里(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——新窗口先建出来,旧窗口后销毁。 一两秒内自己就恢复正常,不用管。

怎么快速判断是哪一种

  1. 看两只的位置

    两只完全重合或紧挨着、动作同步 → 是 both 双通道渲染(最常见)。
    两只离得很远、能分别拖动 → 大概率是两个宿主各一只。

  2. 查进程数
    # Windows:任务管理器搜 electron.exe,数一下有几个 helper
    # macOS / Linux:
    ps aux | grep electron-helper | grep -v grep | wc -l

    多于 1 个 → 两个宿主的问题。

  3. 查配置
    curl http://127.0.0.1:<你的端口>/dsh-pet-7340/config | grep display

    返回 "both" → 就是双通道渲染。

资料来源(历史报告):#64、#108、#123、#126、#212、#232、#271。整理日期:2026-11-03,适用版本及证据限制见正文。