Skip to content

Docker 桌面图标折腾记录

🕒 Published at:

Docker 桌面图标折腾记录 ​

日期: 2026-08-12

问题 ​

给 Docker 桌面快捷方式加图标,SVG 格式不显示,PNG 格式正常。

排查过程 ​

1. 尝试系统图标 ​

  • Icon=docker → 空白(图标名未注册)
  • Icon=yast-docker → 空白(符号链接到 preferences-virtualization-container,不是 Docker 鲸鱼)
  • Icon=folder-docker → 空白(图标名未在 index.theme 注册)
  • Icon=/usr/share/icons/breeze/places/64/folder-docker.svg → 显示了文件夹套鲸鱼(KDE 能识别完整路径的 SVG)

2. 尝试自定义 SVG ​

用户提供的 text-dockerfile.svg(Docker 鲸鱼):

  • Icon=/home/a1/sh/docker/docker.svg → 不显示
  • 测试 .desktop 也不显示

3. 根因定位 ​

SVG 文件里有 Inkscape 特有标签(sodipodi、inkscape),KDE 的 SVG 渲染器(librsvg)无法解析:

有 Inkscape 标签 → 40 处
能显示的 SVG → 0 处 Inkscape 标签

rsvg-convert 也报错:

Error reading SVG: XML parse error: Attribute inkscape:connector-curvature redefined

4. 解决方案 ​

去掉 Inkscape 标签,保留纯 SVG 路径,再转 PNG:

bash
# 清理后的 SVG 转 PNG
rsvg-convert -w 256 -h 256 docker-clean.svg -o docker.png

最终配置 ​

/home/a1/sh/docker/docker.svg    ← 原始 SVG(有 Inkscape 标签,KDE 不认)
/home/a1/sh/docker/docker.png    ← 清理后转的 PNG(KDE 正常显示)
/home/a1/sh/docker/docker-toggle.sh
/home/a1/桌面/docker-toggle.desktop → Icon=/home/a1/sh/docker/docker.png

关键结论 ​

格式KDE 支持Inkscape SVG纯 SVG
SVG⚠️ 要求纯 SVG❌ 不显示✅ 显示
PNG✅ 通用--

KDE 图标用 PNG 最稳,SVG 要确保没有 Inkscape/sodipodi 标签。

工具 ​

  • rsvg-convert(librsvg2-bin):SVG 转 PNG
  • kbuildsycoca5:重建 KDE 图标缓存