我正在尝试为 gnome 制作一个 mimetype 图标主题。我已经text-x-generic.svg
为所有无主题的文件类型创建了。但我正在寻找的是无主题源代码(例如,R、vala、awk 等)和纯通用文本文件的不同图标。
这可能吗?
注意我尝试text-x-generic.svg
区分text-generic.svg
源代码和纯文本,但这不是 linux(gnome) 所理解的。
回复 don_crissti 的评论比如说,我有ruby
、 和的图标js
,但没有C
和 的图标R
。所以,file.c
并且file.r
应该显示图标的图标text-x-generic-unthemed-sourcecode
。并且file.dat
和filename_without_extensions
应显示不同的图标 ( text-generic-plaintext
)。
从文件角度来看,它们是不同的,因为
$ file i.c
i.c: C source, ASCII text
$ file dos.dat
dos.dat: ASCII text
所以,应该有一些办法。
答案1
使用的图标gnome
基于 mime 类型,因此您的file.c
不会被检测为,text-x-generic-unthemed
但text-x-csrc
由于您没有关联图标,它将回退到text-x-generic
。
例如: 使用的图标.vala
是:text-x-vala, text-x-generic
但由于我的图标集中没有text-x-vala
图标,系统将回退到text-x-generic
:
看帖子这里关于如何确定特定 MIME 类型的关联图标。
为了使用不同的回退图标(例如text-x-unthemed
),必须自定义应回退到该特定图标的 MIME 类型的定义,并将相关图标 ( text-x-unthemed
) 添加到 下的图标集mimetypes
。
添加图标,然后更新图标缓存:
gtk-update-icon-cache /path/to/icon_theme_directory
text-x-unthemed
为 mime 类型添加自定义定义,如果它们没有相应的图标,则应将其用作通用(后备)图标。在例如下
创建unthemed.xml
文件~/.local/share/mime/packages
:<?xml version="1.0"?> <mime-info xmlns='http://www.freedesktop.org/standards/shared-mime-info'> <mime-type type="text/x-vala"> <comment>Vala source code</comment> <glob pattern="*.vala" case-sensitive="true"/> <generic-icon name="text-x-unthemed"/> </mime-type> </mime-info>
如果需要,将其他 mime 类型添加到列表中(使用瓦拉
<mime-type>
块作为模板)。使用以下命令重建 mime 缓存:
update-mime-database ~/.local/share/mime
然后系统应该回退到文件text-x-unthemed
图标.vala
:
如果稍后添加专用图标text-x-vala
,系统将使用该图标,例如:
每次添加/删除图标或 mime 类型定义时,不要忘记更新图标和 mime 缓存。
答案2
感谢@don_crissti 提供其工作原理的详细信息。我采用了另一种方法来部分解决问题。我为text-plain
和放置了不同的图标text-x-generic
。text-x-script
包含text-plain
所有不带扩展名的文件,例如 .dat、.txt 等;text-x-[generic,script]
其他人和脚本的后备位置在哪里。
我同意这是一个临时解决方案,但它仍然解决了当前的问题。 (最好的解决方案是为每个文件制作图标/usr/share/mime/*
)
添加了一个屏幕截图来显示它的外观text-x-[python,xml,scripts,generic,plain]