Краткая справочная информация: что обычно устраняет несоответствие
Если приложение Flatpak в Ubuntu 24.04 открывается с использованием Adwaita или светлого интерфейса, когда рабочий стол настроен на темный режим, сначала проверьте, использует ли приложение GTK 3 или GTK 4/libadwaita. Затем обновите Flatpak, сделайте доступным соответствующее расширение темы GTK 3 и убедитесь, что портал рабочего стола установлен. Приложения Flatpak работают в изолированной среде, поэтому они не считывают автоматически все файлы тем, установленные на хосте Ubuntu.
| То, что вы видите | Вероятная причина | Первое действие |
| Приложение GTK 3 использует Adwaita вместо Yaru. | Расширение активной темы отсутствует или не отображается в среде выполнения приложения. | Обновите Flatpak и установите соответствующее расширение темы. |
| Flatpak игнорирует темный стиль Ubuntu | Проблема с порталом, настройками цветовой схемы или поддержкой приложения. | Проверьте внешний вид, пакеты портала и перезапустите приложение. |
| Только одно приложение выглядит иначе. | Приложение может использовать GTK 4/libadwaita, Qt, Electron или собственные стили оформления. | Перед изменением настроек системы определитесь с набором инструментов. |
Эти шаги применимы к приложениям Flatpak на Ubuntu 24.04, особенно к тем, которые установлены из Flathub. Они не заставляют каждое приложение использовать полный стиль оформления рабочего стола Ubuntu. Расширения тем GTK 3, настройки светлого/темного экрана, значки и стили для конкретных приложений — это отдельные элементы.
Как работает сопоставление тем оформления в Flatpak
Приложение Flatpak использует собственную среду выполнения, а не системные библиотеки и каталоги тем хоста. Flatpak не может просто предоставить доступ к библиотеке Ubuntu /usr/share/themesв качестве источника тем для приложения: в песочнице используется собственная файловая система среды выполнения, и темы могут зависеть от конкретной версии GTK. Поэтому Flatpak распространяет поддерживаемые темы GTK 3 в виде расширений среды выполнения.
Flatpak может считывать имя активной темы GTK хоста и устанавливать соответствующее расширение, если оно доступно в удалённом хранилище приложения. Тема всё равно должна быть доступна приложению. В X11 GTK 3 может получать выбранную тему через XSettings. В Wayland GTK считывает соответствующие параметры внешнего вида через портал настроек рабочего стола. Если расширение темы или подходящий путь интеграции отсутствуют, приложение может использовать Adwaita.
В панели настроек Ubuntu 24.04 доступны светлый и темный стили рабочего стола. Однако это не то же самое, что использование темы Yaru GTK 3 для всех приложений. Приложения GTK 4, созданные с помощью libadwaita, как правило, следуют поддерживаемым системным настройкам внешнего вида, но они не обязательно принимают произвольные переопределения устаревших тем GTK. Расширение темы flatpak, названное в честь GTK 3, не изменит стиль каждого приложения GTK 4 или libadwaita.
Для получения технической информации см. документацию Flatpak по интеграции с рабочим столом и настройке тем оформления, а также документацию по поддержке портала GTK .
1. Подтвердите название стиля и темы рабочего стола.
Откройте «Настройки» > «Внешний вид» и выберите желаемый светлый или темный стиль. Выбор будет применен к рабочему столу немедленно. Если вы используете GNOME Tweaks или другой инструмент для выбора пользовательской темы GTK, запишите ее точное название; названия пакетов и тем могут отличаться по регистру букв или суффиксам.
В терминале можно прочитать название активной темы GTK и настройки цветовой схемы:
gsettings get org.gnome.desktop.interface gtk-theme
gsettings get org.gnome.desktop.interface color-scheme
Первая команда выводит название темы, хранящееся в настройках GNOME; вторая выводит предпочтительную светлую/темную схему, если она поддерживается. Эти команды проверяют только значения. Избегайте установки названия темы, скопированного из руководства, если эта тема не установлена и вы не собираетесь ее использовать. Перезапустите соответствующее приложение после изменения настроек внешнего вида, поскольку многие программы считывают свою тему при запуске.
2. Обновите Flatpak и установите соответствующее расширение темы.
Сначала обновите установленные приложения и среды выполнения. Интеграция тем оформления Flatpak, описанная в документации, может автоматически установить соответствующее расширение во время установки или обновления, если тема доступна на настроенном удаленном устройстве.
flatpak update
Если приложение по-прежнему использует резервную тему оформления, перечислите расширения тем GTK, предоставляемые Flathub:
flatpak remote-ls --columns=application flathub | grep '^org.gtk.Gtk3theme'
Выберите расширение, название которого соответствует выбранной вами теме GTK 3. В настоящее время Flathub перечисляет варианты тем Yaru, включая org.gtk.Gtk3theme.Yaru-light. Например, устанавливайте этот вариант только в том случае, если он соответствует нужной вам теме:
flatpak install flathub org.gtk.Gtk3theme.Yaru-light
В описании темы Yaru-light на Flathub она указана как пакет тем GTK. Соответствующее имя темы зависит от настроек хоста и от того, что в данный момент публикует удаленный репозиторий. Если вы используете другой вариант Yaru или тему стороннего разработчика, используйте команду `cd` flatpak searchили `cd` в списке удаленных репозиториев, чтобы найти точный идентификатор расширения; не следует предполагать суффикс пакета по его визуальному имени.
Если тема установлена, но приложение уже запущено, закройте все его окна и откройте снова. В крайнем случае, обновите приложение еще раз, убедившись, что расширение и приложение установлены в одном и том же Flatpak-архиве.
flatpak list --app
flatpak list --runtime | grep -i theme
flatpak update
Flatpak различает установки для каждого пользователя и системные установки. Если вы установили приложение с помощью Flatpak, --userно установили расширение для всей системы, или наоборот, приложение может не увидеть расширение там, где ожидалось. По возможности, размещайте приложение и расширение в одной области установки. Вы можете проверить установку конкретного приложения с помощью Flatpak flatpak info APP_ID.
3. Проверьте портал рабочего стола на Ubuntu 24.04.
В документации портала Flatpak для GTK указано, что этот xdg-desktop-portal-gtkпакет необходим для тем и шрифтов GTK. Ubuntu публикует этот бэкенд для релиза Noble (24.04 LTS). Если пакет отсутствует, установите его из репозиториев Ubuntu:
sudo apt update
sudo apt install xdg-desktop-portal-gtk
Ubuntu GNOME также использует бэкэнд GNOME Portal для реализации функций портала, специфичных для рабочего стола. Установка бэкэнда GTK не означает, что вам следует удалять или заменять бэкэнд GNOME. Сохраните пакеты портала, предоставленные для вашей среды рабочего стола. После установки выйдите из системы и войдите снова, или перезапустите службу пользовательского портала, а затем перезапустите соответствующее приложение:
systemctl --user restart xdg-desktop-portal.service
Если systemd сообщает о недоступности модуля, выйдите из системы и войдите снова. Информация об активации портала может различаться в зависимости от состояния сессии и пакета. Список пакетов Ubuntu подтверждает, что xdg-desktop-portal-gtk доступен для Ubuntu 24.04 .
4. Решите, можно ли использовать эту тему в приложении.
По возможности протестируйте несколько пакетов GTK 3 Flatpak. Если несколько приложений GTK 3 теперь используют эту тему, а одно — нет, оставшаяся проблема может быть специфична для этого приложения или его среды выполнения. Если приложения GTK 3 работают, но современное приложение GNOME по-прежнему имеет другой акцентный цвет или внешний вид виджетов, это вполне ожидаемо: расширения тем GTK 3 не применяются к GTK 4/libadwaita таким же образом.
Некоторые приложения используют Qt, Electron или собственный набор инструментов для создания интерфейса, даже если они внешне похожи на приложения GNOME. В этом случае расширение темы GTK может не оказывать никакого эффекта. Перед изменением разрешений Flatpak проверьте официальную документацию приложения на предмет поддерживаемых параметров внешнего вида. Для Flatpak, установленного из Flathub, проверьте его идентификатор приложения и среду выполнения с помощью:
flatpak info APP_ID
Замените APP_IDна идентификатор приложения, указанный в flatpak list --app. Вывод помогает определить среду выполнения и область установки; он не всегда указывает на используемый инструментарий, поэтому при необходимости уточняйте его в документации приложения или на странице проекта.
Распространенные ошибки, которых следует избегать.
- Не предоставляйте широкий доступ к файловой системе хоста только для копирования внешнего вида. Flatpak описывает расширения тем и интеграцию портала/XSettings как стандартные подходы. Широкий доступ ослабляет изоляцию в песочнице и может по-прежнему давать сбои, если версии GTK для хоста и среды выполнения различаются.
- Не используйте расширение темы GTK 3 в качестве универсального переключателя темного режима. Оно содержит файлы темы для совместимых приложений GTK 3; поддержка системной цветовой схемы — это отдельная настройка, которую должны понимать приложение и портал.
- Не переустанавливайте приложение, не проверив предварительно его расширение и среду выполнения. Переустановка может загрузить ту же среду выполнения без изменения отсутствующей темы или состояния портала.
- Не следует вносить изменения в глобальные настройки портала на первом этапе. Выбор бэкэнда в Ubuntu GNOME зависит от сессии. Замена настроек портала может повлиять на средства выбора файлов и другие элементы интеграции с рабочим столом, помимо тем оформления.
Контрольный список проверки
- В настройках Ubuntu отображается желаемый светлый или темный стиль оформления.
- Известно имя темы GTK для хост-системы, и для Flatpak доступно соответствующее расширение GTK 3.
flatpak updateУстановка завершена, и приложение, а также расширение темы находятся в совместимой области установки.
- Пакет
xdg-desktop-portal-gtkустановлен; после внесения изменений пользовательский сеанс или портал перезапущены.
- Затронутое приложение было полностью закрыто и вновь открыто.
- Вы сравнивали приложения по инструментарию: GTK 3, GTK 4/libadwaita, Qt или Electron могут реагировать по-разному.
Если все пункты контрольного списка пройдены успешно и одно приложение осталось без изменений, наиболее полезным следующим шагом будет обращение к системе отслеживания ошибок или документации этого приложения с указанием его идентификатора Flatpak, среды выполнения, типа сессии Ubuntu (Wayland или X11) и результатов выполнения двух команд только для чтения gsettings. Это поможет отличить специфический для приложения стиль от отсутствующего компонента интеграции с рабочим столом, не ослабляя при этом песочницу.
В текущем руководстве пользователя Ubuntu описаны элементы управления светлой/темной темой в разделе «Настройки» > «Внешний вид» . Поведение Flatpak может различаться в зависимости от его версии, среды выполнения приложения, бэкэнда портала, инструментария и удаленных метаданных; если активная тема не включена в пакет среды выполнения, приложение может продолжать использовать свой собственный внешний вид по умолчанию.