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

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

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

我想为终端和 Nautilus 启用它,但不为其他应用程序启用它,因为 Opera 和软件中心以及其他非 GTK 应用程序在使用 Adwaita Dark 主题时看起来很丑陋/难以阅读。

答案1

对于 GTK2 应用程序来说,实现这个方法相对简单。你可以像这样启动一个带有自定义主题的 gtk2 应用程序:

GTK2_RC_FILES=(path-to-theme) (command)

例如,这是有效的:

GTK2_RC_FILES=/usr/share/themes/Redmond/gtk-2.0/gtkrc catfish

(据我所知,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

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

但就是这样。这就是你可以做到的,差不多。

答案2

不,主题适用于整个应用程序,但某些应用程序(例如 monodevelop)允许为其选择特定主题(它也适用于某些 Java 应用程序)

相关内容