文件图标
在使用Linux桌面的时候,打开文件管理器,会显示当前目录下的文件,通常这个文件会带一个图标,通过图标就比较容易了解文件的类型,例如WPS的PPT文件,就会显示WPP的图像。
但是,有些文件是不显示这种跟应用关联的图标,即使你设置了默认打开程序。这个时候就需要手动更改了。好在了解了后面的机制后,改起来还算比较容易。
文件图标选择机理
这里是选择机理,其实是图标显示是没问题的,问题往往出在文件管理器无法找到正确的图标。对于像Xfce4这样的桌面系统,背后使用的是GTK,它是怎么确定文件类型和图标的呢?
- 第一步:确定文件类型,即MIME。这个是通过目录/usr/share/mime里面的xml文档来定义的,文档的格式自行搜索学习,这里不解释,可以打开任意一个类型看一下。里面一个比较关键的地方,是可以根据文件的扩展名来匹配对应的mime类型。比方说我可以定义一个application/x-xmind类型,然后将匹配模式定义为"*.xmind",这样文件管理器在遇到xmind扩展名的文件时,就知道它的类型了。
- 第二步:根据类型找到图标索引。同样是在上面的那个XML文件里,会定义图标文件的索引,例如上面那个xmind文档,定义图标索引为xmind。
- 第三步:根据图标索引加载图标。对于GTK而言,使用了缓存技术,即将需要使用的图标存到了.cache文件中,这样即使你修改了图标甚至删除了图标文件,也不影响图标的显示。图标一般存储在/usr/share/icons目录下的对应主题目录里,可以自行查阅。图标文件名就是第二步找到的索引名(无扩展名)加上文件扩展名。注意图标文件都是放在对应尺寸的目录里的,放在外面无效。
具体操作
所以,弄明白原理后,具体操作就很简单了。首先你要搞到图标文件,最好是有不同尺寸的,放到对应的目录中,接下来比较关键,必须要更新一下图标的缓存,使用这个命令
sudo gtk-update-icon-cache /usr/share/icons/hicolor/
然后去/usr/share/mime/packages里创建一个XML文档,编辑里面的内容(以下仅为例子,请自行发挥):
<mime-info xmlns="http://www.freedesktop.org/standards/shared-mime-info">
<mime-type type="application/x-xmind">
<comment>xmind document</comment>
<comment xml:lang="zh">XMind 思维导图文件</comment>
<glob pattern="*.xmind"/>
<generic-icon name="xmind"/>
</mime-type>
</mime-info>
最后,更新一下mime数据库:
sudo update-mime-database -V /usr/share/mime
回到文件管理器界面,Ctrl-R刷新一下即可。
Good luck!
Q.E.D.
Comments | 0 条评论