将自定义图标与文件扩展名关联

将自定义图标与文件扩展名关联

问题:显示带有 *.xyz 扩展名的文件的自定义图标(用于 deb 包)

采用的解决方案

0)在 VirtualBox 上安装全新的 Ubuntu 19.04

1)创建一个新图标(xyz.svg 和 xyz.png 48x48)

2)注册新的 mime 类型“text/vnd.xyz”:在 /usr/share/mime/packages 中创建一个 xyz.xml 文件:

<?xml version="1.0" encoding="UTF-8"?>
<mime-info xmlns='http://www.freedesktop.org/standards/shared-mime-info'>
  <mime-type type="text/vnd.xyz">
    <comment>XYZ file</comment>
    <glob pattern="*.xyz"/>
    <icon name="xyz"/>
  </mime-type>
</mime-info>

3)使用 更新 mime 数据库sudo update-mime-database /usr/share/mime

4)创建一个非空文件t​​est.xyz

5)检查新的 MIME 类型是否已注册mimetype test.xyz 结果:确定

6)将图标复制到/usr/share/icons/hicolor/48x48/mimetypes/xyz.png/usr/share/icons/hicolor/scalable/mimetypes/xyz.svg

sudo update-icon-caches /usr/share/icons/hicolor7)使用或 sudo更新图标缓存gtk-update-icon-cache /usr/share/icons/hicolor

8)在 nautilus 中检查 test.xyz 文件是否有 xyz 图标。结果:无

进一步的实验

安装另一个应用程序后(KeePass 2)我尝试了以下方法:

a) 更改 xyz.xml 文件以便使用已注册的图标,如“image-svg+xml”。结果:成功了

b) 更改 xyz.xml 文件以便使用应用程序注册图标,如“application-x-keepassx”。结果:不起作用

c) 修改 keepassx.xml 文件以使用 xyz 图标。结果:它起作用了!.kdbx 文件有 xyz 图标!

“image-svg+xml”位于 Yaru 主题中,而“application-x-keepassx”位于 hicolor 中:我似乎在从 hicolor 获取图标时遇到了一些问题,但 keepass 使用它们却没有问题。

有什么建议吗?

相关内容