核心问题:
如何将mimetype – image/png
转换为图标文件的实际path – /usr/share/icons/Menda-Circle/mimetypes/24x24/application-image-png.svg
同时尊重Linux发行版DE的图标主题集?
自己的进步:
mimetypes.guess_type()会让我很容易基于文件名是OKish文件的mimetype。
有什么不那么容易的是将这个mimetype转换成一个通往图标的path
到目前为止,我没有运气与Linux自己的xdg-utils进展,或pyxdg检测图标主题或超越。 PyQt5似乎也有问题,这在大多数DE不是基于Qt的情况下是可以理解的。 也许在KDE上会得到一些东西。
所以一些谷歌search,我可以用这个通过Gtk检测图标主题
from gi.repository import Gtk print(Gtk.Settings.get_default().get_property("gtk-icon-theme-name"))
那么我现在在哪里,我想一些工作和调整所有情况下,我可以想出一些function,以获得最常见的发行版/ DE和最常见的图标主题的图标。 假设我找出将mimetype转换为图标文件名的模板。
但是这一切都觉得应该已经完成了。 它的一些freedesktop标准和每个文件pipe理器或任何具有文件select器或显示文件和文件夹的程序是否正在使用这种function?
有没有一些很好的优雅的方式去做这件事?
Gio的ContentType处理获取文件类型及其图标:
https://lazka.github.io/pgi-docs/#Gio-2.0/functions.html#Gio.content_type_get_icon