Одна из причин, по которой некоторые пользователи избегают установки приложений в установочном пакете Flatpak, заключается в том, что большинство приложений Flatpak не изменяют свой внешний вид в соответствии с текущей системной темой. Это заставляет приложения выглядеть неуместно в вашей прекрасной настройке. Официальный способ применить темы GTK к приложениям Flatpak — это установить нужную тему в виде Flatpak. Однако есть только несколько тем GTK, которые можно установить как Flatpak. Это означает, что если вы нашли красивую тему GTK, ваши приложения Flatpak по-прежнему будут использовать внешний вид по умолчанию. И это будет смотреться не эстетично! Но существует обходной путь. В этом статье представлен способ, чтобы сделать приложения Flatpak более «родными» к внешним темах GTK.
Прежде чем мы продолжим, давайте разберемся, почему приложения Flatpak ведут себя так. Приложения Flatpak работают внутри «контейнера», поэтому у них нет доступа к файловой системе хоста, сети или физическим устройствам без явной установки соответствующего разрешения, и это то, что мы собираемся сделать. Как уже говорилось ранее, это обходной путь, а не безупречное решение. Не ожидайте, что он автоматически изменит темы приложений Flatpak при изменении системной темы. Однако вы можете изменить его для всех приложений Flatpak одной командой.
Давайте посмотрим, как этого добиться. Обратите внимание, что для этого руководства требуется, чтобы вы были немного знакомы с командной строкой Linux и могли ориентироваться в терминале.
Шаг 1. Предоставьте приложениям Flatpak доступ к расположению тем GTK:
Темы GTK расположены в /usr/share/themes для всех пользователей и в ~/.themes для конкретного пользователя. Чтобы предоставить всем пакетам flatpak доступ к ~/.themes, выполните следующую команду:
sudo flatpak override —filesystem=$HOME/.themes
Обратите внимание, что вы не можете предоставить доступ к /usr/share/themes, потому что, согласно документации flatpak, они занесены в черный список . Кроме того, вы также можете сделать это для каждого приложения. Вам нужно указать ID приложения, для которого вы собираетесь изменить тему:
sudo flatpak override org.gnome.Calculator --filesystem=$HOME/.themes
Шаг 2: Сообщите приложениям Flatpak, какую тему использовать:
Предоставления доступа к ~/.themes недостаточно. Поскольку этот каталог может содержать несколько тем. Чтобы сообщить flatpak, какую тему GTK использовать, сначала получите имя нужной темы, а затем примените следующую команду:
sudo flatpak override —env=GTK_THEME=my-theme
Как вы можете видеть на скриншоте ниже, доступны две темы: Ant-Bloody и Orchis-dark.
Скопируйте и вставьте точное название темы в приведенную выше команду:
sudo flatpak override org.gnome.Calculator --env=GTK_THEME=my-theme
И замените my-theme именем папки темы, которую вы хотите применить (она должна находиться в ~/.themes).
Шаг 3. Проверьте изменение темы, запустив приложение Flatpak:
Если приложение уже запущено, вам придется закрыть и запустить его снова. Вы увидите, что только-что запущенное приложение использует тему, которую вы указали ранее.
Вот скриншот калькулятора GNOME и компоновщика GNOME (версия Flatpak) до выполнения вышеуказанных шагов:
И после вышеуказанных шагов (с темой Canta GTK):
Так лучше, да? А теперь будет уместно упомянуть шаги по отмене изменений.
Отменить изменения
Вы можете отменить изменения, сбросив сразу все переопределения. Обратите внимание, что это приведет к сбросу всех предыдущих настроек, которые вы установили.
sudo flatpak override --reset
Кроме того, вы также можете сбросить разрешения на уровне пакета:
sudo flatpak override --reset org.example.app
Это не автоматизированное решение, но, по крайней мере, оно дает вам возможность изменить темы для приложений Flatpak с помощью нескольких команд. Таким образом, вы можете интегрировать приложение Flatpak с остальной системой.
Мы надеемся, что это помогло вам. Если у вас возникнут какие-либо проблемы, пожалуйста, сообщите о них в комментариях.