如何用Python获取当前的Linux主题?

How to get the current Linux theme with Python?

我需要获取系统中当前的图标主题。问题是有很多环境,如 GNOME、XFCE、MATE...

拜托,我怎样才能得到当前的图标主题?我想 Gtk.IconTheme.get_default(),但我没有得到好的结果。

提前致谢!

遗憾的是,没有适用于所有系统的通用解决方案。

您将需要根据环境使用不同的方法,然后很可能根据当前环境包括一个开关。这需要一些研究...... 在现代 gtk3 环境中,您基本上可以通过 gsettings 非常方便地查询和更改任何设置。 例如,在 GNOME 中:

gsettings get org.gnome.desktop.interface icon-theme

将return当前图标主题。
Cinnamon 中,您可以使用类似的方式查询:

gsettings get org.cinnamon.desktop.interface icon-theme

Mate 中,键 icon-theme 将在模式 org.mate.interface 中定义,而在 Xfce 下可用的工具是 xfconf-query:

xfconf-query -lvc xsettings -p /Net/ThemeName

使用 window 管理器,您可以从 $HOME/.gtkrc-2.0,[=35= 中读取适当的配置文件,例如 gtk-icon-theme-name= ] 或者它甚至可能在 ~/.Xresources 中定义,或者(相当过时)在 $HOME/gtk-3.0/settings.ini,也可能在 $HOME/.config/qt5ct/qt5ct.conf ;) ... 等等 :)