核心问题:
如何将mimetype - image/png
转换为实际的图标文件路径 - /usr/share/icons/Menda-Circle/mimetypes/24x24/application-image-png.svg
,同时尊重Linux发行版DE的图标主题集?
解决进展:
mimetypes.guess_type()可以根据文件名轻松获取文件的mimetype,这还算可以。
不太容易的是将该mimetype转换为指向图标的路径。
到目前为止,我没有运用Linux自己的xdg-utils或pyxdg来检测图标主题,也无法进一步推进。PyQt5似乎也有问题,这很容易理解,因为大多数DE都不基于Qt。也许在KDE上会有所改善。
所以通过一些搜索,我可以使用Gtk来检测图标主题。
from gi.repository import Gtk
print(Gtk.Settings.get_default().get_property("gtk-icon-theme-name"))
现在我所处的位置就是这样,我想通过一些工作和调整来编写一些函数,以便在大多数常见的发行版/桌面环境中获取图标,并针对大多数常见的图标主题进行优化。假设我能够找出将MIME类型转换为图标文件名的模式。
但是所有这些都感觉应该已经完成了。这是一种freedesktop标准,每个文件管理器或任何带有文件选择器或显示文件和文件夹的程序都在使用此功能,不是吗?
有没有一种好的优雅的方法来解决这个问题呢?