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

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

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

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

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

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

13 ответов

Решение

Запустите 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...

До

До

После

После

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

Вы можете указать легкую тему 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

ОБНОВЛЕНИЕ: мой оригинальный ответ на самом деле перезаписывается при обновлении 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.

Я хотел бы добавить к великолепному ответу @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 и все другие приложения с темной темой

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

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

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

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

Лучшее решение сказать 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.

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

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

Спасибо:)

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

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

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

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

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

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

su newuser
firefox -profilemanager

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

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

Лично мне нравится использовать темную тему для Firefox, но я не хочу использовать темную тему для веб-сайтов. Недавно Google и другие веб-сайты, такие как archwiki, начали использовать prefers-color-schemeв их css для автоматического переключения на темную или светлую тему вашего браузера.

В Firefox версии 95 все, что мне нужно было сделать, это перейти к about:configи изменить значение layout.css.prefers-color-scheme.content-overrideк 1.

После внесения изменений перезапустите браузер и обязательно очистите файлы cookie.

Следует отметить, что это относится к поиску Google и другим страницам, когда пользователь не вошел в систему. Вам также может потребоваться настроить индивидуальные пользовательские настройки для таких веб-сайтов, как Twitter, Facebook и Google, которые также используют независимые темные настройки для каждого пользователя. поскольку эти настройки не зависят от вашего GTK и/или темы браузера.

Решение 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

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

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

Конечным результатом является https://github.com/dominichayesferen/Firefox-CSSTheme-GTKless. Это не полное удаление использования темы GTK из-за ограничений userChrome, но оно охватывает большую часть того, что можно изменить с помощью userChrome.

Скорее всего, вы могли бы полностью удалить использование темы GTK с модификацией исходного кода, но я, к сожалению, не знаю, как это сделать.

Другие вопросы по тегам