qgis-default-icons-20260319.zip
知识点:在XDG(Cross-Desktop Group,或Freedesktop.org)规范中,用户可以通过下面的文件来定义文件类型信息:
~/.local/share/mime/packages/*.xml
现状:与Windows下,各种软件争抢默认文件关联方式和默认图标的情况类似,目前UOS/deepin下也存在这种问题,主要分以下两种情况:
1.系统预装主题中,制作了相关的文件类型图标,随着用户切换主题,文件关联图标会随着发生变化;
2.软件开发商在制作deb安装包时,将相关的文件关联图标和打开方式在系统中置顶,来强制修改全局设置,例如WPS和中望CAD。
这个帖子主要讨论第1种情况。
下面是QGIS数据文件,在不同主题下的各种文件图标:
问题:除了QGIS默认的文件图标之外,其他主题的辨识度不高,与长期积累的经验不符,很容易与其他普通文件弄混。
随着主题切换而变化的图标,让人很难用直觉快速识别这些特殊格式的文件。
在桌面上各种文件比较多的情况下,体验尤其不好,不注意的话,容易造成文件误删。
如何让这些文件图标固定下来,不要随着系统主题的切换而发生变化呢?
解决方案:
之前找了一些方法,要么过于复杂,要么是在gnome、kde等其他桌面环境下才生效,都不理想。
今天再问gemini的时候,ai给出了一个大道至简的方法,直接在用户配置目录中,自定义mimetype的xml文件,修改icon文件名定义,让系统不要再去找预装的图标文件。
简单示例:
1.复制QGIS软件自带的qgis.xml,原始内容如下(...指略去的内容):
... ...
2.修改图标定义,以.qgs文件为例:
通用的图标名称为 qgis-qgs,在前面加个前缀字符串,如 default-,即 default-qgis-qgs:
qgis-qgs
default-
default-qgis-qgs
或者直接批量替换字符串:icon name="qgis 为 icon name="default-qgis
修改完之后,另存为 default-qgis.xml。
default-qgis.xml
3.从QGIS的安装资源中复制图标文件,并修改名称:
QGIS的默认文件图标是按照 hicolor主题目录的方式组织的。
hicolor
这里只需要让ai写个bash脚本,遍历QGIS的 hicolor目录中的所有文件,在文件名中添加前缀 default-,如下图:
4.将 default-qgis.xml复制到 ~/.local/share/mime/packages/,
~/.local/share/mime/packages/
将 hicolor目录复制到 ~/.local/share/icons/。
~/.local/share/icons/
5.刷新一下刷新文件关联及图标:
# 更新mime数据库 update-mime-database ~/.local/share/mime # 更新桌面数据库 update-desktop-database ~/.local/share/applications # 更新图标缓存 update-icon-caches ~/.local/share/icons/*
6.经过如此的修改,系统不再去找通用的 qgis-qgs.png,而是回退到用户的hicolor主题目录,寻找自定义的 default-qgis-qgs.png。
qgis-qgs.png
default-qgis-qgs.png
另一方面,由于用户设置优先级高于系统设置,即便是在 /usr/share/mime/packages/下有原始的 qgis.xml,优先级也低于用户的 ~/.local/share/mime/packages/,用户设置也不受系统影响。
/usr/share/mime/packages/
qgis.xml
这样,图标显示就完成了自定义,不会再跟随系统主题而变化了。
总结:
通过修改,或者创建mimetype的xml定义文件,可以在比较细的粒度上对个别的文件图标进行自定义,同时避免对系统文件的修改,简化了操作。
修改保存在用户配置目录下,即便是重装系统,这些修改依然持久存在。
有兴趣的朋友,可以举一反三,对其他的文件图标进行自定义。
好文,前排
学习了,谢谢大佬分享
Featured Collection
Popular Ranking
Popular Events
qgis-default-icons-20260319.zip
知识点:在XDG(Cross-Desktop Group,或Freedesktop.org)规范中,用户可以通过下面的文件来定义文件类型信息:
现状:与Windows下,各种软件争抢默认文件关联方式和默认图标的情况类似,目前UOS/deepin下也存在这种问题,主要分以下两种情况:
1.系统预装主题中,制作了相关的文件类型图标,随着用户切换主题,文件关联图标会随着发生变化;
2.软件开发商在制作deb安装包时,将相关的文件关联图标和打开方式在系统中置顶,来强制修改全局设置,例如WPS和中望CAD。
这个帖子主要讨论第1种情况。
下面是QGIS数据文件,在不同主题下的各种文件图标:
问题:除了QGIS默认的文件图标之外,其他主题的辨识度不高,与长期积累的经验不符,很容易与其他普通文件弄混。
随着主题切换而变化的图标,让人很难用直觉快速识别这些特殊格式的文件。
在桌面上各种文件比较多的情况下,体验尤其不好,不注意的话,容易造成文件误删。
如何让这些文件图标固定下来,不要随着系统主题的切换而发生变化呢?
解决方案:
之前找了一些方法,要么过于复杂,要么是在gnome、kde等其他桌面环境下才生效,都不理想。
今天再问gemini的时候,ai给出了一个大道至简的方法,直接在用户配置目录中,自定义mimetype的xml文件,修改icon文件名定义,让系统不要再去找预装的图标文件。
简单示例:
1.复制QGIS软件自带的qgis.xml,原始内容如下(...指略去的内容):
2.修改图标定义,以.qgs文件为例:
通用的图标名称为
qgis-qgs,在前面加个前缀字符串,如default-,即default-qgis-qgs:或者直接批量替换字符串:icon name="qgis 为 icon name="default-qgis
修改完之后,另存为
default-qgis.xml。3.从QGIS的安装资源中复制图标文件,并修改名称:
QGIS的默认文件图标是按照
hicolor主题目录的方式组织的。这里只需要让ai写个bash脚本,遍历QGIS的
hicolor目录中的所有文件,在文件名中添加前缀default-,如下图:4.将
default-qgis.xml复制到~/.local/share/mime/packages/,将
hicolor目录复制到~/.local/share/icons/。5.刷新一下刷新文件关联及图标:
6.经过如此的修改,系统不再去找通用的
qgis-qgs.png,而是回退到用户的hicolor主题目录,寻找自定义的default-qgis-qgs.png。另一方面,由于用户设置优先级高于系统设置,即便是在
/usr/share/mime/packages/下有原始的qgis.xml,优先级也低于用户的~/.local/share/mime/packages/,用户设置也不受系统影响。这样,图标显示就完成了自定义,不会再跟随系统主题而变化了。
总结:
通过修改,或者创建mimetype的xml定义文件,可以在比较细的粒度上对个别的文件图标进行自定义,同时避免对系统文件的修改,简化了操作。
修改保存在用户配置目录下,即便是重装系统,这些修改依然持久存在。
有兴趣的朋友,可以举一反三,对其他的文件图标进行自定义。