刚刚看了下商店里的图标主题deb包里的内容,测试了一下。
单纯在/usr/share/dsg/icons/目录放置自己的图标目录比如my-icon-theme还不够
需要在/usr/share/icons/目录放置同名目录比如my-icon-theme,目录里需要有index.theme(参照其他目录的index.theme),不然控制中心不知道这套图标的名称是什么。
比如我这里精简以后,文件内容是:
[Icon Theme]
Name=my-icon-theme
Directories=./
目前/usr/share/dsg/icons/my-icon-theme目录下只放了一个图标 dde-file-manager.dci
这里的Directories我们其实走dsg目录的话,我们不会往/usr/share/icons/my-icon-theme/目录放那些目录actions、apps之类的各种目录,但是这个字段必须有值,这里直接任意写了个./(暂时还没发现什么问题,我这就一个图标)。
效果是这样的:



中文 










【Bug 反馈】deepin 25 控制中心无法识别并显示自定义纯 DCI 图标主题(附完整复现路径与底层配置割裂现象)
📝 问题概述
在 deepin 25 系统中,用户按照 DSG (Desktop Specs Group) 规范,使用官方推荐的
svgs2dci工具制作了纯 DCI 格式的第三方图标主题。将该主题放置在标准目录(/usr/share/dsg/icons/)下后,控制中心的“图标主题”列表中完全无法识别并显示该主题。同时,系统存在控制中心显示状态与实际底层配置不同步的严重 Bug,导致用户替换主题目录内的图标文件后毫无反应。
💻 环境信息
deepin-desktop-theme1.1.30 (已高于社区反馈的修复版本 1.1.14)svgs2dci(基于 Qt6/DTK 6.7)sudo deepin-immutable-ctl disable-system-protect enable),/usr目录完全可写。🔄 完整复现步骤
第一阶段:制作与放置自定义 DCI 主题
svgs2dci工具将自己设计的 SVG 图标(Win11 风格)批量打包为.dci文件。sudo mkdir -p /usr/share/dsg/icons/win11fullbloom-classic里的所有.dci复制到win11full中,再用自己做的同名.dci覆盖。win11full。第二阶段:排查配置文件与目录结构
/usr/share/deepin-themes/下添加index.theme。尝试后发现,添加后会把它识别成“全局主题”出现在桌面主题列表(且缩略图空白),而不是图标主题。deepin-themes下的配置,仅保留/usr/share/dsg/icons/win11full/下的纯.dci文件,依然不显示。.dci文件干扰(/usr/share/dsg/icons/*.dci被移走测试)。第三阶段:发现底层配置与界面显示的割裂(核心 Bug)
organic-glass。organic-glass,但底层 gsettings 配置仍是bloom。com.qq.weixin.deepin.dci覆盖到/usr/share/dsg/icons/organic-glass/下,注销重启后,微信图标无任何变化。organic-glass文件无效——系统底层根本就没去读取这个主题,一直在读bloom。🐛 发现的核心问题 (Bug 列表)
iconThemeViewModel没有提供扫描并注册/usr/share/dsg/icons/下自定义文件夹的机制。com.deepin.dde.appearance的 GSettings 中。这导致了“所见非所读”的割裂状态。🤔 已有的社区线索
在前期排查中,参考了社区的相关讨论:
index.theme,只需放入$DSG_DATA_DIR/icons/即可被 DTK 程序读取,但如何在控制中心显示是个未解之谜。💡 期望的解决方案
gsettings get的返回值能实时对应。.dci文件后,重启桌面进程能够立即生效。🔧 目前的临时绕过方案
鉴于以上 Bug 存在,目前只能采用“寄生”方案强行替换:
既然底层
gsettings明确返回当前使用的是bloom,则不管控制中心显示什么,直接将所有自定义的.dci文件覆盖到/usr/share/dsg/icons/bloom/目录下,重启系统或重启dde-desktop服务,以此达到更换图标的目的。或使用旧版xdg文件规范(应用商店内主题使用逻辑)
感谢开发团队的辛勤付出,希望 deepin 25 的自定义图标功能早日完善!