在多数的Linux发行版中,默认的桌面的文件类型图标着实不好看,比如我常用的Linux之一Debian,默认文件类型图标就很不好看。如果我们自定义了一种mime类型的话肯定也是没有图标的啦,下面我们来一步步自定义mime类型图标。
0.效果
0.1修改前的样子
0.2修改后的效果
可以看到我们修改后的图标就是丰富多彩的了。
1.准备图片
因为要生成各种尺寸的图片(需要16x16,24x24,32x32,48x48,64x64,96x96,128x128,256x256,512x512等几种尺寸的图片),我们准备的图片需要是512x512像素的图片,图片格式要求是png。如下图:
2.生成各个尺寸图片
通过xdg-icon-resource install命令来操作,以下命令是在root用户操作,可以针对所有用户生效,也可以在普通用户下操作,只是针对该普通用户。在php.png所在目录操作,故不需要写文件路径。
xdg-icon-resource install --size 16 --context mimetypes php.png application-x-php
xdg-icon-resource install --size 24 --context mimetypes php.png application-x-php
xdg-icon-resource install --size 32 --context mimetypes php.png application-x-php
xdg-icon-resource install --size 48 --context mimetypes php.png application-x-php
xdg-icon-resource install --size 64 --context mimetypes php.png application-x-php
xdg-icon-resource install --size 96 --context mimetypes php.png application-x-php
xdg-icon-resource install --size 128 --context mimetypes php.png application-x-php
xdg-icon-resource install --size 256 --context mimetypes php.png application-x-php
xdg-icon-resource install --size 512 --context mimetypes php.png application-x-php
其中,text-html是文件mime类型把“/”改为“-”后的得来,也是最终生成的文件名,其他mime类型或者自定义mime类型也是同样操作,记住这个名字,后面会需要。如果不加最后的application-x-php 那么生成的文件名就是我们的png文件名。
生成的文件位于:
全局路径为:/usr/share/icons/
普通用户路径:~/.local/share/icons/
一般会位于hicolor目录下。
3.编写mime类型数据库配置文件
mime类型数据库配置同样也可以在root用户下操作全局的,也可以在普通用户下操作针对该普通用户生效。
编写x-php.xml文件:
全局路径为:/usr/share/mime/packages/x-php.xml
普通用户路径:~/.local/share/mime/packages/x-php.xml
这里我们就在普通用户下操作。
文件内容为:
<?xml version='1.0' encoding='utf-8'?>
<mime-info xmlns="http://www.freedesktop.org/standards/shared-mime-info">
<mime-type type="application/x-php">
<comment>PHP script</comment>
<comment xml:lang="zh_CN">PHP 脚本</comment>
<sub-class-of type="text/plain"/>
<generic-icon name="application-x-php"/>
<glob pattern="*.php"/>
<glob pattern="*.php3"/>
<glob pattern="*.php4"/>
<glob pattern="*.php5"/>
<glob pattern="*.phps"/>
</mime-type>
</mime-info>
其中:
- mime-type的type内容是mime类型
- comment是描述信息,这个是在文件右键属性中显示,可以写各个语言的,也就是说没有指定语言的时候,就显示默认的PHP script,我们单独加了简体中文,当系统语言是简体中文的时候显示PHP 脚本。
- sub-class-of 表示是该mime类型的子类,也就是说php脚本文件本质上是text/plain(文本文件)的子类。
- generic-icon就是我们第2步创建的图标文件名。
- glob是文件扩展名,可以写多个。
4.更新mime数据库信息
这里与第3步的操作有关,第三步是在root用户下操作的,这里就在root下执行,;第三步是普通用户下操作的,就在给普通用户相爱执行。
root用户下执行以下命令:
update-mime-database /usr/share/mime
普通用户下执行以下命令:
update-mime-database -V ~/.local/share/mime
执行完毕后刷新就可以看到自定义的图标了。
有时候如果不生效,可以在root用户下把系统默认图标替换了(需要手动替换各个尺寸的)。
然后执行以下命令更新图标缓存:
gtk-update-icon-cache /usr/share/icons/gnome
其中命令中的目录为系统主题文件index.theme所在目录,其他目录执行会报错:
备注
可以使用gio命令查看指定的mime类型可以由那些应用打开:
如我们查看application/wps-office.docx(WPS的word文档)可以打开的应用:
从图中可以看到,可以WPS,libreoffice等用于打开。