文件类型图标在用户操作过程中起着很重要的作用,虽不求精美但一定要有所特色,这样才可以起到明示分辨的作用。
预期
Kubuntu 9.04 默认的图标组 oxygen 中已对个别文件类型图标进行了定义,诸如 Microsoft Office (.doc/.ppt/.xls/...),Adobe Acrobat (.pdf/...) 等等。但是对于常见的 chm 帮助文件却未加定义。这也值不得诟病,毕竟 Linux 是一个开放的平台,无论是开发人员还是用户都该尽其所能而非单纯的依靠某一方。
原理分析
言归正传,之所以 chm 文件显示“空白文件”图标,想必是在一系列关联中未对 chm 做出特殊的设置,故而系统不会为其指定专有标识,转而使用默认的空白文件类型图标。
操作过程
首先准备各种尺寸的 chm 文件类型图标文件,具体规格和风格视你所使用的主题而定。在 oxygen 图标组环境下,我么可以用 application-illustrator.png (Adobe Illustrator .ai 文件格式图标)作为参考标准,因为 .ai 是某个程序所专有的文件格式,最具有特殊性。

我分别制作了各种规格的 chm 文件图标,并存处于 /usr/share/icons/oxygen/axa/mimetypes 下面,命名为 application-chm.png。

刷新系统图标组,并没有出现预期效果,那么肯定还有其他的关联设置需要修改。基于网页设计的浅显所得,以及文件目录 mime 的提示,我认为需要修改系统默认的 mime 类型定义。于是将目光定位到 /usr/share/mime 目录,仔细分析后发现需要在如下文件中增加对 chm 类型的支持:

generic-icons globs globs2 types

具体的操作仍照搬 illustrator 的对应设置。

刷新系统图标组,并没有出现预期效果,于是再次寻找可能的相关。这次是 /usr/share/mime/application。照搬 illustrator.xml 的书写规则,或者直接复制一份命名为 chm.xml 并修改必要的内容。

刷新系统图标组,ok 了……
知识扩展
关于准确的书写规范,参考:http://www.freedesktop.org/standards/shared-mime-info

更新
本着用户配置分离的指导方针,我们也可以在如下位置进行个人配置:
/home/id/.local/share/mime