Вопрос или проблема
Неважно, какой режим внешнего вида я выбираю в диалоговом окне параметров, LibreOffice всегда будет работать в светлом режиме:
Однако, когда я устанавливаю переменную окружения GTK_THEME
на Adwaita:dark
, LibreOffice будет работать в темном режиме (GTK_THEME=Adwaita:dark libreoffice
):
Похоже, что что-то имеет приоритет над установкой режима внешнего вида в диалоговом окне параметров, но переменная окружения GTK_THEME
в свою очередь имеет приоритет над этим.
У кого-нибудь есть идеи, что может заставлять LibreOffice работать в светлом режиме, несмотря на то, что режим внешнего вида установлен на Темный
?
Это происходит на свежей установке Debian testing / Wayland / Gnome с включенным темным режимом.
Я могу воспроизвести ситуацию, когда LibreOffice не применяет предпочтение темы, если для устаревших приложений (gtk3) установлена темная тема.
Чтобы проверить, способствует ли это возникшей проблеме, выполните:
gsettings get org.gnome.desktop.interface gtk-theme
и, если она установлена на “Adwaita-dark”, установите пустое значение или “Adwaita”:
gsettings set org.gnome.desktop.interface gtk-theme 'Adwaita'
затем Libreoffice (проверено в версии 25.2+ в Debian unstable / GNOME 48) по крайней мере будет казаться, что применяет выбранную тему после перезапуска (или в случае Adwaita светлого падет обратно на установленное значение gtk3).
Я не могу ответить, что конкретно вызывает такое поведение в исходном коде LO (предполагаю, что в vcl/unx/gtk3/custom-theme.cxx, так как gtk_css_provider_new()
считывает установку gtk3), проблема отслеживается в ошибке#153841 и подтверждена другими пользователями.
В настоящее время (в версии 25.2+) введена новая система оформления. В лучшем случае рефакторинг также решит проблему наследования gtk-темы после его выпуска.
Как последнее средство можно навсегда переопределить запускающие приложения, это легко сделать с некоторыми предосторожностями (внутри sed выберите “Adwaita” или “Adwaita:dark”):
mkdir -p ~/.local/share/applications
rm -f ~/.local/share/applications/libreoffice-*
find /usr/share/applications/ -iname '*libreoffice*' -exec cp {} ~/.local/share/applications/ \;
for f in ~/.local/share/applications/libreoffice-*; do sed -i 's|Exec=libreoffice|Exec=env GTK_THEME=Adwaita libreoffice|g' $f; done
Ответ или решение
Проблема, описанная в вашем тексте, связана с неправильной интерпретацией режимов внешнего вида LibreOffice в среде Gnome на платформе Wayland в Debian. При этом изменение внешнего вида через интерфейс настроек в LibreOffice не оказывает ожидаемого влияния на режим отображения программы, что вызывает удивление и вопросы у пользователей. Интересен тот факт, что установка переменной окружения GTK_THEME
позволяет преодолеть эту проблему и определить режим внешнего вида, например, переключить интерфейс в тёмный режим с помощью команды GTK_THEME=Adwaita:dark libreoffice
.
Теоретическая основа:
Суть проблемы лежит в тесной интеграции приложений на базе GTK с настройками окружения, в частности, темами оболочки. В системах, использующих Gnome и Wayland, тема оформления определяется на нескольких уровнях. Она включает в себя настройки как для GTK3, так и для других инструментов интерфейса пользователя. Переменные окружения, такие как GTK_THEME
, имеют приоритет над системными настройками тем, поскольку они явно указывают приложению, какую тему применять.
Пример:
Для подробного исследования данной проблемы можно начать с изучения текущих настроек темы GTK в вашей системе. Это можно сделать с помощью команды:
gsettings get org.gnome.desktop.interface gtk-theme
Если эта команда показывает, что установлена тема "Adwaita-dark" для GTK, вы можете попробовать изменить её на "Adwaita", выполнив следующую команду:
gsettings set org.gnome.desktop.interface gtk-theme 'Adwaita'
После этого необходимо перезагрузить LibreOffice, чтобы проверить, будет ли использоваться указанный режим.
Применение на практике:
На практике решение этой проблемы может потребовать временных обходных решений, особенно если улучшения в исходном коде LibreOffice ещё не интегрированы в используемую вами версию программы. Однако есть несколько стратегий, которые вы можете использовать:
-
Использование переменной окружения
GTK_THEME
: Можно вручную установить тёмную тему при запуске LibreOffice, добавив следующую строку к команде запуска программы:GTK_THEME=Adwaita:dark libreoffice
-
Постоянная настройка запуска:
Для автоматизации вышеописанного подхода возможно создать пользовательские ярлыки для LibreOffice. Это можно сделать путем копирования файлов.desktop
в вашу локальную папку приложений и изменения команды запуска:mkdir -p ~/.local/share/applications rm -f ~/.local/share/applications/libreoffice-* find /usr/share/applications/ -iname '*libreoffice*' -exec cp {} ~/.local/share/applications/ \; for f in ~/.local/share/applications/libreoffice-*; do sed -i 's|Exec=libreoffice|Exec=env GTK_THEME=Adwaita libreoffice|g' $f; done
-
Обновление и отслеживание новых версий и исправлений:
Следует быть в курсе обновлений LibreOffice, так как разработчики активно работают над улучшением пользовательского опыта и устранением подобных проблем. Можно следить за статусом задачи в трекере ошибок LibreOffice, связанной с этой проблемой, по ссылке: bug#153841. -
Тестовая настройка GTK3:
Иногда настройка внешнего вида для других приложений GTK3 может повлиять на поведение LibreOffice. Если ваше окружение использует это, проверьте его настройки и попробуйте сбросить или установить тему по умолчанию вручную.
Таким образом, ваши действия могут варьироваться от простой настройки переменной окружения до более сложных процедур с изменением конфигурационных файлов. Однако, это временные решения, и наилучшим вариантом будет дождаться внедрения обновлений от разработчиков LibreOffice, которые учитывают эти аспекты при разработке и тестировании новых версий. Это позволит обеспечить более устойчивую и пользовательски дружественную интеграцию приложения в vaše рабочее окружение.