LINUX.ORG.RU

Как хромиум определяет, что тема тёмная?

 ,


0

2

Если я правильно понимаю, то начиная с версии 114 хромой выставляет ″@media( prefers-color-scheme: dark|light) {}″ чтобы сайт отображался в тёмной|светлой теме.

У меня как-бы собственная тема на основании Adwaita, и если в файле написать:

@import url("resource:////org/gtk/libgtk/theme/Adwaita/gtk-contained.css");
то все сайты светлые. А если написать:
@import url("resource:///org/gtk/libgtk/theme/Adwaita/gtk-contained-dark.css");
то часть сайтов становится чёрными, незавимимо от:
gtk-application-prefer-dark-theme=0  # В файле ~/.config/gtk-3.0/settings.ini 

$ gsettings set org.gnome.desktop.interface color-scheme prefer-light

$ dbus-send --session --print-reply=literal --dest=org.freedesktop.portal.Desktop /org/freedesktop/portal/desktop org.freedesktop.portal.Settings.Read string:org.freedesktop.appearance string:color-scheme | tr -s ' ' | cut -d ' ' -f 5
2
Последняя команда взята из https://wiki.archlinux.org/title/chromium и 2, вроде как, означает предпочтение светлых тем.

Почему так и что в gtk-contained-dark.css изменить, чтобы хромой решил, что не надо делать сайты тёмными?

Хромиум собран с gtk 3, DE нет, fvwm.

Перемещено hobbit из general

★★★★★

Наверное где-то тут

Рыть дальше можно прыгая по вызовам функций и найти заветные однозначные строчки. Но мне лэн.

LINUX-ORG-RU ★★★★★
()
Последнее исправление: LINUX-ORG-RU (всего исправлений: 2)
Ответ на: комментарий от xaTa

Разве здесь дело в css? ИМХО, тут речь про кишки функции CalculatePreferredColorScheme() или около.

set_use_dark_colors(IsForcedDarkMode() ||
                      color_utils::IsDark(window_bg_color));
  set_preferred_color_scheme(CalculatePreferredColorScheme());

И, может, у gentoo, какие специфичные патчи есть. При желании это можно расковрять, но, после каждого тыка перезапускать браузер совсем не интерестно.

mky ★★★★★
() автор топика

Скорее всего через жопу. Потому как хром пишут обезьяны. Они узнали что есть тёмные темы, нагуглили первый попавшийся способ определения тёмная тема или светлая и взяли его не долго думая. Про всякие gtk-application-prefer-dark-theme они в жизни не слышали, потому что платят им не за то чтобы разбираться в работе, а за конкретные KPI.

peregrine ★★★★★
()
Ответ на: комментарий от peregrine

Сомневаюсь, что будут считать это багом. LINUX-ORG-RU правильно ткнул в исходник, откуда нужно начинать копать. Там такой коммент в коде:

// GTK has a dark mode setting called "gtk-application-prefer-dark-theme", but
// this is really only used for themes that have a dark or light variant that
// gets toggled based on this setting (eg. Adwaita).  Most dark themes do not
// have a light variant and aren't affected by the setting.  Because of this,
// experimentally check if the theme is dark by checking if the window
// background color is dark.

То есть они знают, что есть gtk-application-prefer-dark-theme, но пофиг, они будут смотреть фоновый цвет. Разверну исходники у себя, посмотрю, что именно для них ″is dark″ в rgb представлении. Заодно, может, собирусь и найду по коду, откуда берётся название и размер шрифта адресной (URL) строки.

mky ★★★★★
() автор топика