如何在不使用 GNOME、KDE 或任何其他桌面特定程序/库/文件的情况下确定用户的图标主题?
pyxdg
我在库中或 xdg 规范中找不到有关如何确定用户图标主题的任何内容。
xdg-* 命令行工具也无法做到这一点,特别是:
$ xdg-settings --list
Known properties:
default-web-browser Default web browser
这是它“知道”的唯一设置!
对于 GNOME,可以通过以下方式完成:
$ gsettings list-recursively | grep icon-theme
org.gnome.desktop.interface icon-theme 'ubuntu-mono-dark'
但这在其他地方不起作用!
更具体地说,我的问题是,pyxdg
库不会返回许多应用程序的图标,除非我显式传递主题名称或自己设置库相应的全局变量。因此我
- 要么必须自己找到所有已安装的主题(很多额外的丑陋代码,pyxdg 也不这样做)并可能搜索所有主题(慢)
- 或者必须查找当前主题的名称(每个桌面环境的额外丑陋代码,像 xmonad 这样的自定义/最小设置怎么样)
因此,这确实属于像pyxdg
.但他们并没有这样做,尽管声称实施了 xdg 标准。这让我想知道是否/为什么没有指定它。
答案1
没有全局图标主题设置,所以原则上不能这样做。如果您更改 KDE 图标主题,它不会更改 GNOME 应用程序中的图标。
KDE 应用程序在 GNOME 桌面环境中运行时,将使用 GNOME 主题设置,但这并不是因为全局设置,而是因为 Qt 工具包添加了一种机制来检测 GNOME 主题并使用它。它最终仍然是 GNOME 特定的设置,如果您切换到另一个桌面环境,它就不会保留。