如何覆盖每个应用程序的 GTK3 / Gnome Shell 主题

aef*_*aef 11 themes libreoffice gnome-shell gnome3 cinnamon

我在 Fedora 17 上使用 Cinnamon 和 Gnome Shell (Gnome 3) 和深色主题Blapple。相当多的应用程序不能很好地处理黑暗主题。

在 Gnome 2 中,我为这些程序提供了一个简单的解决方案。我只是指示他们通过如下环境变量使用浅色主题GTK2_RC_FILES(示例在某些 2009 Ubuntu Gnome 2 设置中工作):

env GTK2_RC_FILES=/usr/share/themes/Human/gtk-2.0/gtkrc ooffice --writer
Run Code Online (Sandbox Code Playgroud)

现在在 Gnome 3 中不起作用。我在许多不同的命令变体中进行了尝试,如下所示,到目前为止都没有成功:

env GTK2_RC_FILES=/usr/share/themes/Adwaita/gtk-3.0/gtkrc GTK3_RC_FILES=/usr/share/themes/Adwaita/gtk-3.0 libreoffice --writer
Run Code Online (Sandbox Code Playgroud)

我在任何地方都找不到关于此的文档。如果你知道怎么做或者我可以从哪里得到这些信息,请告诉我。

为什么要覆盖:如果 LibreOffice 和 OpenOffice 试图解决这些问题似乎毫无用处。安装 Blapple 主题后,所有内容都有灰色背景。例如,尝试覆盖 Calc 中的默认背景颜色会使背景变为白色,但也会将每个自定义背景单元格覆盖为白色,这很可怕。不要让我开始谈论 Impress 的工作原理......

小智 8

我遇到了同样的问题,OpenOffice + 黑色主题看起来很难看。似乎没有什么比旧GTK2_RC_FILES变量更方便的了,但看看这个:

应用程序可以通过gtk_css_provider_load_from_file()使用gtk_style_context_add_provider()或 gtk_style_context_add_provider_for_screen()调用和添加提供 程序来使 GTK+ 解析特定的 CSS 样式表。此外,某些文件会在 GTK+ 初始化时被读取。首先,XDG_CONFIG_HOME/gtk-3.0/gtk.css如果文件存在,则加载该文件 。然后,GTK+ 尝试加载HOME/.themes/theme-name/gtk-3.0/gtk.css,回退到 GTK_DATA_PREFIX/share/themes/theme-name/gtk-3.0/gtk.css,其中 theme-name 是当前主题的名称(请参阅"gtk-theme-name" 设置)并且GTK_DATA_PREFIX是编译 GTK+ 时配置的前缀,除非被GTK_DATA_PREFIX环境变量覆盖。

来源

这意味着通过这样做,您可以强制 GTK 使用默认的普通主题:

env GTK2_RC_FILES= GTK_DATA_PREFIX= libreoffice --writer
Run Code Online (Sandbox Code Playgroud)

似乎不可能覆盖主题名称(这有点愚蠢,应该修复),因此似乎唯一的方法是创建一个“假”主题目录。


Mic*_*ell 7

我知道这是一个非常古老的问题,但这是在 GTK+3 中的方法。

GTK_THEME=Adwaita gnome-calculator
Run Code Online (Sandbox Code Playgroud)

或使用

GTK_THEME=Adwaita:dark gnome-calculator
Run Code Online (Sandbox Code Playgroud)

对于 Adwaita 主题的深色变体。