Как можно заставить Firefox полностью игнорировать мою тему GTK?

51

У меня есть темная тема GTK, установленная в моей установке Ubuntu 10.10, и персона, установленная для Firefox, которая мне тоже нравится.

Проблема в том, что Firefox использует мою темную тему GTK для таких элементов, как кнопки и текстовые поля на общих веб-страницах, и это обычно создает нечитаемые меню, текстовые области и кнопки. (белый текст на белом фоне или черный текст на черных кнопках).

Я не хочу менять ни одну из этих тем, потому что они отлично смотрятся в любом другом приложении, и я не хочу делать что-то сумасшедшее с моей установкой Firefox, например использовать пользовательские скрипты или переопределения CSS.

Все, что я хочу сделать, это сказать Firefox, чтобы он прекратил полностью использовать мою тему GTK. Похоже, это то, что делает браузер Google Chrome, и это наиболее логично.

Как веб-разработчики могут обойти все возможные темы GTK?

Тамале
источник
Интересно, есть ли у кого-нибудь постоянное решение для этого, чтобы я мог просто запустить Firefox из моей вкладки / окна действий Gnome 3 ...
MarioDS
@MDeSchaepmeester: Смотрите ответ, который я добавил здесь для KDE, возможно, он также работает и для Gnome: askubuntu.com/a/358493/154613
Игорь Родригес,
Есть другие решения, в том числе и то, что мне помогло , по связанному вопросу askubuntu.com/q/227727/23786 .
CodeMouse92,

Ответы:

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

Это запустит Firefox с помощью темы Simple / Adwaita: light, которая довольно проста и должна сочетаться с вашей персоной. Вы можете попробовать другие темы, заменив Simple на имя темы, но это работает не со всеми темами.

До сих пор я успешно тестировал темы Simple и Redmond ...

До

До

После

После

lovinglinux
источник
это работало для mw только с темами «Новая волна» и «Редмонд», но все же работало, так что я очень благодарен. скриншоты всегда приветствуются :)
тамале
это круто!!!
RolandiXor
что вам нужно сделать после выхода из вашего текущего экземпляра firefox, конечно, или скрипт «firefox» просто даст указание текущему процессу открыть новое окно (а параметр GTK2_RC_FILES просто полностью игнорируется).
sylvainulg
2
С какой самой последней версией firefox известно, что она работает? Я использую Firefox 31 в Ubuntu Utopic и, клянусь, это сработало для меня однажды, но я, должно быть, галлюцинирую, потому что больше не работает, что бы я ни пытался.
Робру
4
Это больше не работает с Firefox 46 из-за перехода на GTK 3.
Константин Переяслов
46

Постоянное решение:

Вы можете указать легкую тему GTK для рендеринга веб-страниц в about: config. Это здорово, потому что ваша системная тема будет по-прежнему применяться для меню и т. Д., Но веб-страницы будут отображаться так же, как и со светлыми темами.

  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

rviertel
источник
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

И результат такой:

Firefox с темой Redmond и все другие приложения с темной темой

Игорь Родригес
источник
1
Спасибо, что показали, как изменить файл .desktop. Это делает это очень удобным! Я использую ваше решение для LibreOffice.
Файл рабочего стола перезаписывается каждый раз, когда обновляется Firefox, так что это не постоянное решение
rviertel
8

ОБНОВЛЕНИЕ : мой оригинальный ответ на самом деле перезаписывается при обновлении Firefox.


Мое текущее (постоянное) решение

Edit
~/.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.

barro32
источник
1
Оно работает. Кстати, я использую Exec=bash -c 'GTK_THEME=Arc-Darker firefox %u'.
мя
Это не работает долгое время, потому что файл .desktop перезаписывается при обновлении Firefox
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

НЕ РАБОТАЕТ ДЛЯ ЛОКАЛЬНЫХ САЙТОВ! так что если вы веб-разработчик / дизайнер, это не сработает для вас.

4 - если вы хотите, чтобы это было поведение по умолчанию:

Просто добавьте две строки в скрипт запуска Firefox, расположенный по адресу /usr/lib/firefox/firefox.sh

в терминале введите вниз:

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.

Надеюсь это поможет.

Пожалуйста, помогите мне, проголосовав за это.

Спасибо :)

Bannaz
источник
Это сработало для меня. Спасибо! +1
VenoM
2

Это дополнение (предложенное koushik ) хорошо работает для меня.

Я использую Firefox 57 на Ubuntu MATE 17.10

Saftever
источник
Спасибо, это расширение отлично сработало для Firefox Quantum на Fedora. :)
john400
2

Существует очень простой способ вернуть цветовую схему по умолчанию для веб-страниц, сохраняя при этом тему GTK для элементов Firefox. Я знаю, что это не совсем то, о чем спрашивали, но это может помочь людям, приходящим сюда из поиска Google.

  1. Перейдите к about:configв адресной строке.
  2. Прокрутите вниз, пока не увидите настройки
    • browser.display.foreground_color
    • browser.diaplay.background_color
  3. Если эти настройки были изменены, щелкните их правой кнопкой мыши и выберите reset.

Это должно быть, перезагрузка не требуется. Это работает с Firefox Quantum.

Настройки в о: config

SeanW
источник
2

Я использую Adwaita dark themeс Ubuntu 18. Я использую тему по умолчанию в firefox 63.0. Лучшее решение в моем случае, без каких-либо побочных эффектов, было заставить Firefox использовать легкую тему ( Adwaitaв моем случае) только для рендеринга веб-контента:

  • Откройте about:configв адресной строке.
  • Создайте новую строковую запись: widget.content.gtk-theme-override(щелкните правой кнопкой мыши> New> String).
  • Установите значение для светлой темы, чтобы использовать для визуализации контента (Adwaita в моем случае).
  • Перезапустите Firefox.

Изменить тему GTK только для обработки контента

nikau6
источник
1

Вы можете запустить Firefox с другим пользователем и тем же профилем. Скопируйте ваш текущий профиль (~ / .mozilla / firefox / profile) в папку этого другого пользователя, преобразуйте его в пользователя и запустите на консоли:

su newuser
firefox -profilemanager

Это звучит немного излишне, но вы можете поместить это в сценарий. Firefox будет использовать тему в профиле, но оставит без изменений GTK от нового пользователя.

Кроме того, это тот тип вещей, который делает забавным использование Firefox и Ubuntu: P

Фернандо Бриано
источник
0

Вы можете добавить другую тему в Firefox, которая вам нравится, из Tools -> Addons -> Themes. Тогда просто используйте эту тему вместо темы по умолчанию.

NightwishFan
источник
2
Вы не можете использовать другую тему Firefox при использовании Personas
lovinglinux
1
Ого, спасибо. Не понял. (Также рад, что вы здесь, пользователи Firefox должны сильно помочь! :))
NightwishFan
0

Банназ решение прекрасно работает, поскольку я не использую файлы .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
fivethous
источник