显示位置设成「都不显示」后,桌宠彻底消失怎么恢复

本页目录

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

设成「都不显示」再重启 DSH,托盘图标和桌宠会一起消失,界面上找不到任何切回来的入口——看起来像插件坏了,其实配置还能改回来。

先说结论:先核对是否由 display: none 引起。 历史 #239 报告了这种恢复入口缺失;可按以下顺序尝试,不能据此判断文件一定完好或保证恢复时间。

为什么会这样

dsh-pet 的桌面托盘是由 helper 进程创建的。而 helper 的启动条件是:

if (!hasDesktopPet && !desktopModeEverActive) return;  // 不启动

其中 desktopModeEverActive 是个进程内变量,不落盘。 所以一旦你把显示位置设成「都不」(display: "none"),再重启 DSH:

而托盘右键菜单和宠物右键菜单是仅有的两个「显示位置」入口,它们一起消失了。 用户此刻只剩设置页一条路,从表面看就是「插件彻底坏了」。

恢复方法(按顺序试)

  1. 方法一:DSH 设置 → 桌宠配置

    打开 DSH 设置,找到「桌宠配置」,把「显示位置」从「都不显示」改成 「桌面」或「两者」,保存。

    保存后检查 helper、托盘与实际配置;未恢复时继续下一步。

    注意:这个设置页有已知的「静默保存失败」问题(见下方「改完没生效?」), 保存后一定按第 3 步验证一下。

  2. 方法二:直接改配置文件

    如果设置页打不开或保存无效,直接改文件:

    # 配置文件位置(三个平台都是这个相对路径)
    ~/.dsh/dsh-pet/main-config.jsonc
    
    # Windows 完整路径
    C:\Users\<你的用户名>\.dsh\dsh-pet\main-config.jsonc

    找到 display 字段,把 "none" 改成 "desktop"(只在桌面显示) 或 "both"(桌面和网页都显示):

    {
      "pets": [
        {
          "id": "main",
          "display": "desktop"    // ← 改这里
        }
      ]
    }

    保存后完全退出 DSH 再启动(不是关窗口,是退进程)。

    上面的代码仅表示修改位置。先备份原文件,只改目标宠物的 display,保留其他字段和其他宠物,不能用片段覆盖整份配置。设置过 DSH_HOME 时,请使用实际配置目录。

  3. 方法三:调接口(进阶)

    dsh-pet 在本地起了个 HTTP 服务,可以直接改。先找端口——在 DSH 日志里搜 dsh-pet-7340,会看到类似这样的地址:

    http://127.0.0.1:43120/dsh-pet-7340/config

    以下是 POSIX shell 示例;43120 必须替换为日志中的实际端口,main 替换为目标宠物 id。401/403 时先查访问鉴权。

    # 查看当前配置(验证用)
    curl http://127.0.0.1:43120/dsh-pet-7340/config
    
    # 改显示位置
    curl -X POST http://127.0.0.1:43120/dsh-pet-7340/pet-display \
      -H "Content-Type: application/json" \
      -d '{"id":"main","display":"desktop"}'

改完没生效?

历史 #167(0.3.7)报告的行为如下,当前版本需重新核验:设置页的保存可能静默失败。你看到下拉框变成「仅桌面」了, 但磁盘上的配置根本没写进去,重启后一切照旧。

原因:读取和保存两条路径的校验宽严不一致。

操作校验规则结果
读取配置逐字段合并,缺字段取默认宽松,手写部分字段也能用
保存配置要求字段齐全,缺一个就整体拒绝严格,不满足就返回 400

当设置页提交的数据有任何一项不满足严格校验,保存会返回 400, main-config.jsonc 不会被写入,但界面已经显示成你选的值了。

怎么验证真的写进去了:

curl http://127.0.0.1:<你的端口>/dsh-pet-7340/config | grep display

如果返回的还是 "none",说明没写进去——用方法二直接改文件。

怎么避免再踩

资料来源(历史报告):#239、#263。整理日期:2026-11-03,适用版本及证据限制见正文。