我正在 Ubuntu 20.04 上进行 X11 会话。我没有使用桌面环境。我的窗口管理器是 Sawfish。
突然间,运行 Gtk 应用程序的外观改变为我确定的 Breeze 主题,这是 KDE 应用程序使用的主题。这包括 Sawfish 自己的菜单、Thunderbird、Evince、音量控制 ( pavucontrol
) 和 Xfce4 面板。新启动的实例也使用此主题。我希望他们将它们改回我为 Gtk 设计的主题。
我不知道到底是什么导致了这种变化,除了我摸索着 KDE: Alt+Space开始调用一个 GUI 小部件,我发现它是一个 KDE 启动器 (krunner)。我没想到会这样,所以我一直在那个启动器中输入,但我不知道我输入了什么。我摆脱了Alt+Space劫持pkill krunner; pkill kglobalaccel5
,但图形主题仍然存在。
Gnome-tweaks 和 xfce4-settings-manager 都认为当前主题是 Yaru。 Gnome 控制中心认为我的“外观 → 窗口颜色”是“标准”,无论这意味着什么。gtk-theme-switch2
似乎认为我的主题是 Adwaita(或者只是不知道当前主题是什么并按字母顺序预选第一个选项?)并更改为“Yaru”(或其他任何内容)并单击“应用”没有任何效果效果可见。
KDE 系统设置 ( systemsettings5
) 认为我的主题是 Breeze 并且不提供 Yaru 作为选择,但这没关系 - 我想KDE应用程序使用KDE的主题,Gtk应用程序使用Gtk的主题。在 KDE 系统设置中从 Breeze 切换到 Fusion 不会影响 Gtk 应用程序。
lxappearance
(一个LXDE配置工具)启动时认为我的小部件风格是Breeze。我可以选择 Yaru 并单击“应用”,这会在 lxappearance 本身中切换主题,但它在 lxappearance 之外没有可见的效果,如果我退出 lxappearance 并再次启动它,它会回到 Breeze。
$ grep theme ~/.config/gtk-3.0/settings.ini
gtk-theme-name=Yaru
gtk-application-prefer-dark-theme=0
gtk-icon-theme-name=hicolor
$ grep theme ~/.gtkrc-2.0
# /usr/share/themes/Emacs/gtk-2.0-key/gtkrc
gtk-key-theme-name = "Emacs"
$ gsettings get org.gnome.desktop.interface gtk-theme
'Yaru'
$ xfconf-query -c xsettings -p /Net/ThemeName
Yaru
$ dconf dump / |grep -i theme
gtk-theme='Yaru'
use-theme-transparency=false
$ find .* -name .thunderbird -prune -o -name google-chrome -prune -o -type f -mmin -99 -print0 |xargs -0 grep -l -i breeze
.config/kconf_updaterc
.config/kdeglobals
.config/Trolltech.conf
.kde/share/config/kdeglobals
.kde/share/apps/color-schemes/Breeze.colors
.lesshst
如果我在另一个虚拟控制台中启动新会话,我会看到预期的颜色。但我想恢复当前的会话。我怎么做?
除了我上面尝试过的那些之外,系统的哪一部分控制运行 Gtk 应用程序所使用的主题?如何将运行 Gtk 应用程序的主题更改回我想要的主题?