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


50

我在Ubuntu 10.10安装中安装了深色的GTK主题,并为我也喜欢的Firefox安装了角色。

问题是Firefox将我的深色GTK主题用于普通网页上的按钮和文本字段之类的项目,并且这通常会创建不可读的菜单,文本区域和按钮。(白色背景上的白色文本,或黑色按钮上的黑色文本)。

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

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

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


我想知道是否有人对此有永久的解决方案,所以我可以从我的Gnome 3活动标签/窗口中启动firefox ...
MarioDS 2012年

@MDeSchaepmeester:请参阅我在此处为KDE添加的答案,也许它也适用于Gnome:askubuntu.com/a/358493/154613
Igor Rodriguez

在相关问题askubuntu.com/q/227727/23786上,还有其他解决方案,包括为我工作的解决方案。
CodeMouse92 2013年

Answers:


36

使用以下命令之一启动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主题...

之前

之前

后


这仅适用于具有“新浪潮”和“雷蒙德”主题的大众汽车,但它仍然有效,所以我非常出色。屏幕截图也总是
很受

这太棒了!!!
RolandiXor

当然,您在退出当前的firefox实例后需要执行的操作,否则“ firefox”脚本将仅指示当前进程打开一个新窗口(而GTK2_RC_FILES设置将被完全忽略)。
sylvainulg 2012年

2
已知可以使用的最新的firefox版本是什么?我在Ubuntu Utopic上使用Firefox 31,并且曾经发誓对我有效,但是我一定会产生幻觉,因为无论尝试什么,它都不再起作用。
robru

4
这不再与Firefox 46的作品,因为切换到GTK 3
康斯坦丁Pereiaslov

46

永久解决方案:

您可以在about:config中指定一个浅色GTK主题以用于呈现网页。这很棒,因为您的系统主题仍将适用于菜单等,但是网页将以明亮的主题呈现。

  1. about:config在Firefox浏览器中导航到
  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


2
我喜欢这个,而且效果很好。将设置保存在Firefox本身中,而不是系统或桌面条目中晦涩的地方:)
jocull

而且不需要重新启动Firefox。立即应用。
Massood Khaari

1
这将是一个不错的选择,除了它不再起作用了。多可惜!每晚运行Firefox 69.0a1
smac89,

仍然在稳定版本上为我工作。当69.0出现时,我会重新评估。
rviertel

9

我想在@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

结果是这样的:

带有Redmond主题的Firefox和所有其他具有深色主题的应用程序


1
感谢您展示如何修改.desktop文件。这样非常方便!我正在使用您的LibreOffice解决方案。

Firefox每次更新时,桌面文件都会被覆盖,因此这不是永久解决方案
rviertel

8

更新:当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主题。


1
有用。顺便说一句,我用Exec=bash -c 'GTK_THEME=Arc-Darker firefox %u'
mja

这不会长期有效,因为在更新Firefox后会覆盖.desktop文件
。– rviertel

@rviertel是正确的,它的确会被覆盖。我已经用当前解决此问题的方法更新了答案。
barro32

2

告诉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

不适用于本地主机站点!因此,如果您是Web开发人员/设计人员,那么对您来说效果会不太好。

4-如果您希望这是默认行为:

只需在位于/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。

希望这可以帮助。

请投票支持我。

谢谢 :)


这对我有用。谢谢!+1
VenoM '18年


2

有一种非常简单的方法来恢复网页的默认配色方案,同时仍保留Firefox元素的GTK主题。我知道这并不是问的确切内容,但它可能会帮助来自Google搜索的人。

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

就是这样,不需要重新启动。这适用于Firefox Quantum。

about:config中的设置


2

我正在使用Adwaita dark themewith Ubuntu 18。我在中使用默认主题firefox 63.0。就我而言,最好的解决方案是完全没有副作用,是迫使Firefox使用一个浅色主题(Adwaita就我而言)仅用于Web内容呈现:

  • about:config在地址栏中打开。
  • 创建一个新的字符串条目:(widget.content.gtk-theme-override右键单击>新建>字符串)。
  • 将值设置为浅色主题以用于内容呈现(Adwaita在我的情况下)。
  • 重新启动Firefox。

更改GTK主题仅适用于内容处理


1

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

su newuser
firefox -profilemanager

这听起来有些矫kill过正,但是您可以将其放入脚本中。Firefox将使用配置文件上的主题,但保留新用户使用的非主题GTK。

另外,这是一种使使用Firefox和Ubuntu有趣的东西:P


0

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


2
而人物角色不能使用不同的Firefox的主题
lovinglinux

1
哇,谢谢。没意识到。(也很高兴您在这里,应该为Firefox用户带来很大的帮助!:))
NightwishFan 2010年

0

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
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.