如何为特定应用程序使用不同的 GTK 3 主题

本文解释了如何将不同的 GTK 3 主题应用于特定应用程序(全局/桌面 GTK 主题以外的主题)。

那么为什么您需要将某些应用程序设置为使用与为整个桌面设置的主题不同的 GTK3 主题呢? 在某些情况下,应用程序看起来不像它应该的那样/看起来与特定主题不同,但您想继续将该主题用于 Linux 桌面上的其他应用程序。 或者,您可能更喜欢仅对一个或两个应用程序使用特定主题,而对其余应用程序使用不同的主题,例如,您可以将文本编辑器设置为使用深色主题,而对您的所有其他应用程序使用浅色主题桌面。

在这个截图中,Tweaks 使用 Mint-Y 主题,Nautilus 使用 Canta 主题,Gedit 使用 Yaru-dark,Eolie 网络浏览器(从 Flathub 安装)使用 Plata 主题。 它们都在同一时间运行。

让我给你举个例子。

Ubuntu 19.10 默认使用明暗混合主题,但与早期 Ubuntu 版本中使用的主题不同:窗口标题是暗的,但菜单栏现在是亮的。 因此,默认情况下使用深色主题的 Visual Studio Code、Atom 或 Sublime Text 等代码编辑器具有白色菜单栏,其他所有内容均为黑色。

如果您更喜欢保留此设置(混合 Yaru 主题作为您的全局 GTK 3 主题,以及 VS Code / Atom / Sublime Text 的深色主题)但将 VS Code / Atom / Sublime Text 菜单栏更改为深色,因此它不会不要显得格格不入,您可以使用本文中的说明将 VS Code / Atom / Sublime Text 设置为使用 Yaru-dark 主题,同时让所有其他应用程序使用默认的混合 Yaru 主题。

如何使用 Yaru 主题在 Ubuntu 19.10 上获取深色 GNOME Shell 菜单和对话框

要在每个应用程序的基础上更改 GTK 主题,我们将使用 GTK_THEME 环境变量,根据此 GNOME GTK 页面,“主要用于轻松调试主题问题”
. 因此,不能保证此选项在任何地方都有效(它实际上不适用于 DBus 激活的应用程序),并且它可能会在某些时候停止工作。

值得一提的是,这
更改任何 GTK 3 应用程序的应用程序主题,但窗口装饰保持不变
(继续使用全局 GTK 3 主题)
对于不使用客户端装饰的应用程序。

这适用于本机应用程序,以及 Flatpak 和 Snap 包,只要您要用于特定应用程序的主题受 Flathub/Snapcraft 支持(作为旁注,Flatpak 应用程序支持更多第三方主题比 Snap)。

启动主题与全局 GTK3 主题不同的单个应用程序

要在每个应用程序的基础上覆盖默认的 GTK 主题,请设置 GTK_THEME 环境变量,在启动应用程序时,您希望应用程序使用的主题作为其值。 像这样:

GTK_THEME=<theme-name> <application>