基于文件的mimetype获取图标,Linux + Python

核心问题:

如何将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