如何使 Adwaita Dark 主题仅适用于某些应用程序?

Bya*_*kun 4 gnome themes

这是否可以将 Adwaita Dark 主题仅应用于某些应用程序?

我想为终端和 Nautilus 而不是其他应用程序启用它,因为 Opera 和软件中心以及可能其他非 GTK 应用程序在 Adwaita Dark 主题下看起来很难看/不可读。

Ken*_*der 5

对于 GTK2 应用程序,执行此操作的方法相对简单。您可以使用这样的自定义主题启动 gtk2 应用程序:

GTK2_RC_FILES=(path-to-theme) (command)
Run Code Online (Sandbox Code Playgroud)

例如,这有效:

GTK2_RC_FILES=/usr/share/themes/Redmond/gtk-2.0/gtkrc catfish
Run Code Online (Sandbox Code Playgroud)

(Catfish 是我知道是 gtk2 的应用程序——您可能没有安装它。)

不幸的是,此功能在 GTK3 中完全失效。我不能保证这会完美运行,但您可以尝试制作简单的 shell 脚本来配置主题,启动应用程序,然后取消配置主题。如果您同时启动两个应用程序,我将导致无法预测结果的竞争条件

例如,您可以像这样启动 gedit:

#!/bin/sh
if [ -h ~/.config/gtk-3.0 ]
  then
    rm ~/.config/gtk-3.0
fi
ln -s /usr/share/themes/HighContrast/gtk-3.0 ~/.config
gedit "$@" &
sleep 1
if [ -h ~/.config/gtk-3.0 ]
  then
    rm ~/.config/gtk-3.0
fi
Run Code Online (Sandbox Code Playgroud)

除了竞争条件,这样做还有一些其他不受欢迎的副作用。一方面,您将为每个具有自己主题的应用程序使用更多内存。另一方面,您必须为每个应用程序编写自定义 shell 脚本和启动器。最后,在我看来,您的桌面看起来会很奇怪。

但是在那里。这就是你可以做到的,有点。