如何让Firefox完全忽略我的GTK主题?

我在我的Ubuntu 10.10安装中安装了一个黑暗的GTK主题,并且我也喜欢为Firefox安装了一个角色。

问题是Firefox使用我的黑暗GTK主题来处理普通网页上的按钮和文本字段等项目,这通常会产生无法读取的菜单,文本区域和按钮。 (白色背景上的白色文本或黑色按钮上的黑色文本)。

我不想改变任何一个主题,因为它们在其他所有应用程序中看起来都很棒,而且我不想为我的Firefox安装做一些疯狂的事情,比如使用自定义用户脚本或CSS覆盖。

我想要做的就是告诉Firefox完全停止使用我的GTK主题。 这似乎是谷歌的Chrome浏览器所做的,它到目前为止最有意义。

Web开发人员如何解决所有可能的GTK主题?

使用以下命令之一启动Firefox:

  • GTK3 Firefox 46+: env GTK_THEME=Adwaita:light firefox
  • GTK2 Firefox <46: env GTK2_RC_FILES=/usr/share/themes/Simple/gtk-2.0/gtkrc firefox

这将使用Simple / Adwaita:light主题启动Firefox,这是非常基本的,应该与你的Persona融为一体。 您可以通过将Simple替换为主题名称来尝试其他主题,但这不适用于所有主题。

到目前为止,我已成功测试了Simple和Redmond主题……

之前

之前

后

我想在@lovinglinux中添加一个方法,让Firefox在从任务栏中的启动器而不是命令行打开时加载主题:

  1. 将/usr/share/applications/firefox.desktop编辑为sudo,
  2. 在“Exec”行中,使用上述@lovinglinux提供的说明,使用命令替换“=”后面的值:

    bash -c’GTK2_RC_FILES = / usr / share / themes / Redmond / gtk-2.0 / gtkrc firefox%u’ 凯特编辑firefox.desktop

结果如下:

Firefox与Redmond主题和所有其他具有黑暗主题的应用程序

更新 :当Firefox更新时,我的原始答案实际上被覆盖了。


我目前的(永久)解决方案

编辑
~/.mozilla/firefox/abcdef.default/chrome/userContent.css
(其中abcdef是随机字符串)

 input:not(.urlbar-input):not(.textbox-input):not(.form-control):not([type='checkbox']):not([type='radio']), textarea, select { -moz-appearance: none !important; background-color: #eee; color: #111; } 

原始答案

我找到了一个让Firefox 完全忽略你的GTK主题的解决方案。

编辑/usr/share/applications/firefox.desktop并进行更改

 Exec=firefox %u 

 Exec=bash -c 'GTK_THEME=" " firefox %u' 

当你(重新)启动FF时,它将使用FF主题。

永久解决方案

您可以指定一个轻量级GTK主题,用于在about:config中呈现网页。 这很好,因为您的系统主题仍然适用于菜单等,但网页将以轻量级主题呈现。

  1. 在Firefox浏览器中导航到about:config
  2. 右键单击并选择new-> string
  3. 输入widget.content.gtk-theme-override作为名称
  4. 输入您在系统上安装的轻量级GTK主题。 例如Arc
  5. 重启firefox。

资料来源: https : //www.reddit.com/r/firefox/comments/6rbvvw/photon_rectangular_tabs_have_landed_in_nightly/dl4318f/

另见https://bugzilla.mozilla.org/show_bug.cgi?id=1283086

告诉Firefox它应该使用灯光主题而不是黑暗的最佳解决方案是在启动之前指定GTK_THEME变量。

所以,你有4种方法可以做到这一点..

1-从终端你可以做:

 GTK_THEME=Adwaita:light firefox 

2-如果你讨厌终端并想在firefox工作时关闭它:

 GTK_THEME=Adwaita:light firefox & 

3-来自firefox about:config你可以将以下设置设置为false:

 browser.display.use_system_colors 

不适用于localhost网站! 因此,如果您是一名Web开发人员/设计人员,那么对您来说效果不佳。

4-如果你想要这是一个defualt行为:

只需在位于/usr/lib/firefox/firefox.sh的Firefox启动器脚本中添加两行即可

在终端类型中:

 sudo gedit /usr/lib/firefox/firefox.sh 

看一下脚本的开头:

 MOZ_LIBDIR=/usr/lib/firefox MOZ_APP_LAUNCHER=`which $0` MOZ_APP_NAME=firefox export MOZ_APP_LAUNCHER 

并将其更改为:

 MOZ_LIBDIR=/usr/lib/firefox MOZ_APP_LAUNCHER=`which $0` MOZ_APP_NAME=firefox GTK_THEME=Adwaita:light export MOZ_APP_LAUNCHER export GTK_THEME 

最后,重启Firefox。

希望这可以帮助。

投票支持我。

谢谢 :)

这个附加组件 (由koushik建议)对我很有用。

我在Ubuntu MATE 17.10上使用Firefox 57

有一种非常简单的方法可以为网页恢复默认的配色方案,同时仍然保留您的Firefox元素的GTK主题。 我知道这不是所要求的,但它可以帮助人们从谷歌搜索来到这里。

  1. 导航到地址栏中的about:config
  2. 向下滚动,直到看到设置
    • browser.display.foreground_color
    • browser.diaplay.background_color
  3. 如果已修改这些设置,请右键单击它们并选择reset

应该是它,不需要重新启动。 这适用于Firefox Quantum。

about:config中的设置

您可以使用不同的用户和相同的配置文件启动Firefox。 将当前配置文件(〜/ .mozilla / firefox / profile)复制到该用户的不同文件夹,然后将其复制给用户,然后在控制台上运行:

 su newuser firefox -profilemanager 

这听起来有点矫枉过正,但你可以将它放入脚本中。 Firefox将使用配置文件中的主题,但保留新用户的未经训练的GTK。

此外,这是使用Firefox和Ubuntu很有趣的东西:P

您可以从工具 – >插件 – >主题向Firefox添加另一个主题。 然后只使用该主题而不是默认主题。

Bannaz解决方案效果很好,因为我不使用.desktop文件,但有时(或者每次)升级Firefox时,我对启动器脚本的补丁消失了。

所以我的解决方案是创建一个新的启动器脚本文件,该文件设置首选GTK主题,执行原始启动器脚本并且不受升级影响。


我系统上的原始启动器位于/usr/bin/firefox

我创建了一个位于/usr/bin/local/firefox的新启动器,其中包含以下内容:

 #!/bin/sh export GTK_THEME=Adwaita exec /usr/bin/firefox "$@" 

更改路径位置以适合您的系统。 并且不要忘记使其可执行:

 sudo chmod +x /usr/local/bin/firefox