Как применить системную тему к приложениям flatpak, использующим GTK4?
Я использую одну из тем по умолчанию — Yaru-dark Gtk Theme. Я тоже устанавливал через flatpak. Идентификатор приложения
org.gtk.Gtk3theme.Yaru-dark
. Некоторые приложения, которые я установил через flatpak, следуют ему, но другие делают. Я заметил, что приложения, которые не следуют ему, используют Gtk4 и libadwaita, так что это может быть причиной. Есть ли способ заставить другие приложения использовать системную тему? я пытался искать
org.gtk.Gtk4theme.Yaru-dark
на flathub, но его нет.
$ flatpak remote-ls flathub | grep -i yaru-dark
Yaru-dark Gtk Theme org.gtk.Gtk3theme.Yaru-dark 3.22
Например , baobab использует gtk4 и не соответствует системной теме, а mypaint использует gtk3 и следует системной теме.
2 ответа
На данный момент приложения Flatpak Gtk4 поддерживают только и
Adwaita-Dark
темы. Таким образом, можно добиться хотя бы небольшой согласованности при их использовании, настроив все приложения на его использование. Для этого нужно установить тему для системных приложений, для плоских приложений с использованием Gtk3 и для плоских приложений с использованием Gtk4.
Чтобы установить тему для системных приложений, используйте gnome-tweaks. Измените его в разделе внешнего вида.
Чтобы изменить тему для приложений flatpak с помощью Gtk3 , установите
Adwaita
или же
Adwaita-dark
из плоского хаба.
flatpak install org.gtk.Gtk3theme.Adwaita-dark
Чтобы изменить тему для приложений flatpak с помощью Gtk4 , дайте приложениям разрешения на доступ к ней и установите
GTK_THEME
переменная окружения для них. Я использовал flatseal, но это можно сделать через
flatpak
cli (вам может понадобиться
sudo
).
Чтобы найти папку темы, вы можете использовать
fd
или же
find
. (
fd adwaita /
)
flatpak override --filesystem=/usr/share/themes/
flatpak override --env GTK_THEME=Adwaita-dark
Нам, пользователям, иногда нужно немного терпения. Ubuntu создает Yaru, а Ubuntu создает Snap. Для пакетов Snap они приняли внешний вид Yaru для приложений, использующих libadwaita (GTK4). Если бы вместо этого они приняли Flatpak, он уже работал бы для Flatpak.
Мы еще не так далеко . Это свободное программное обеспечение, поэтому, как только кто-то создаст плоский пакет, он будет работать.