Jeśli aplikacja Flatpak uruchamia się za pomocą Adwaita, podczas gdy reszta Ubuntu 24.04 korzysta z Yaru, pliki motywu zainstalowane na pulpicie mogą być w porządku. Flatpak uruchamia aplikacje w piaskownicy, więc program nie odczytuje automatycznie każdego pliku motywu hosta. Rozwiązaniem jest zazwyczaj upewnienie się, że wybrany motyw jest dostępny dla środowiska wykonawczego Flatpak i że usługa ustawień pulpitu może komunikować aktywny wybór.
Ten przewodnik rozpoczyna się od prostych sprawdzeń, a następnie przechodzi do ukierunkowanego rozwiązywania problemów. Dotyczy on głównie aplikacji GTK 3. Aplikacje GTK 4 i libadwaita mogą stosować inne reguły stylistyczne, dlatego nie ma gwarancji, że motyw działający w Plikach lub innej aplikacji GTK 3 będzie działał w każdym oknie Flatpak.
Co musisz wiedzieć na początek
Motyw GTK kontroluje wygląd elementów interfejsu, takich jak przyciski i menu, w aplikacjach za pomocą GTK – zestawu narzędzi do tworzenia interfejsów graficznych. Środowisko wykonawcze Flatpak udostępnia biblioteki współdzielone używane przez aplikację w trybie piaskownicy. Piaskownica oddziela system plików aplikacji od systemu hosta. W rezultacie pliki motywu hosta w takich lokalizacjach /usr/share/themesnie są po prostu kopiowane do każdego Flatpak.
Obsługiwane przez Flatpak podejście do motywów GTK 3 to rozszerzenie o nazwie odpowiadającej motywowi, zazwyczaj po org.gtk.Gtk3theme.ThemeName. Jeśli to rozszerzenie istnieje w skonfigurowanym pilocie dla środowiska uruchomieniowego aplikacji, Flatpak może je zainstalować wraz z aplikacją lub podczas aktualizacji. Pulpit musi również udostępniać aktywne ustawienie: XSettings jest używane w X11, a portal Ustawienia udostępnia je w Wayland. Portal to usługa pulpitu, która zapewnia aplikacjom w trybie sandbox kontrolowany dostęp do wybranych funkcji i preferencji pulpitu.
Domyślny motyw Yaru w Ubuntu jest zainstalowany na hoście, ale sam ten fakt nie dowodzi, że odpowiednie rozszerzenie motywu Flatpak jest dostępne dla każdej aplikacji i środowiska wykonawczego. Dostępność może zależeć od nazwy motywu, skonfigurowanego zdalnego pulpitu Flatpak, gałęzi środowiska wykonawczego i zestawu narzędzi. Flatpak dokumentuje Adwaita jako rozwiązanie awaryjne w przypadku niedostępności motywu lub interfejsu ustawień.
Krok 1: Potwierdź motyw i sesję hosta
Najpierw sprawdź, czy motyw jest zastosowany do zwykłych aplikacji desktopowych. Otwórz Ustawienia → Wygląd , zanotuj wybrany styl i otwórz preinstalowaną aplikację GTK. Jeśli aplikacje hosta również wyglądają nieprawidłowo, popraw wygląd pulpitu przed zmianą ustawień Flatpak.
Nazwę motywu GTK można sprawdzić w Terminalu za pomocą polecenia:
gsettings get org.gnome.desktop.interface gtk-theme
Wynikiem jest nazwa w cudzysłowie, na przykład 'Yaru'. Zwróć uwagę na pisownię i wielkość liter. Flatpak dopasowuje nazwę motywu GTK wybranego przez hosta do rozszerzenia; wyszukiwanie podobnego motywu o innej nazwie może nie rozwiązać problemu niezgodności. Projekt Yaru w Ubuntu dokumentuje Yaru jako domyślny zestaw motywów GTK w Ubuntu.
Określ również, czy Twoja sesja to Wayland, czy X11. Na ekranie logowania wybierz swojego użytkownika i użyj menu koła zębatego, jeśli jest dostępne; nazwa sesji jest tam zazwyczaj wyświetlana. Jest to istotne, ponieważ ścieżka ustawień jest inna: Wayland korzysta z portalu, podczas gdy X11 używa XSettings. Domyślna sesja GNOME w Ubuntu 24.04 zazwyczaj korzysta z Wayland, ale użytkownicy mogą wybrać inną sesję.
Krok 2: Zaktualizuj Flatpak i sprawdź dostępność rozszerzeń motywu
Uruchom ogólną aktualizację Flatpak, aby odświeżyć zainstalowane aplikacje, środowiska uruchomieniowe i dostępne rozszerzenia:
flatpak update
Przejrzyj proponowane zmiany przed ich zatwierdzeniem. Następnie wyszukaj na skonfigurowanych pilotach rozszerzenia pasujące do zarejestrowanej nazwy motywu. Aby wybrać Yaru, spróbuj:
flatpak search org.gtk.Gtk3theme.Yaru
Jeśli wyszukiwanie zwróci pasujące rozszerzenie, zanotuj dokładny identyfikator aplikacji i wyświetlony pilot. Zainstaluj je tylko wtedy, gdy Flatpak nie zainstalował go wcześniej. Użyj identyfikatora i pilota dokładnie tak, jak jest to wyświetlone:
flatpak install REMOTE EXTENSION_ID
Zastąp oba wielkie symbole zastępcze rzeczywistymi wartościami. Nie kopiuj domniemanego identyfikatora rozszerzenia z niepowiązanego motywu lub gałęzi środowiska wykonawczego. Niektóre kompilacje rozszerzeń mogą być niedostępne dla danego środowiska wykonawczego; w takim przypadku aplikacja może nadal korzystać z Adwaity, mimo że host ma Yaru.
Własna dokumentacja integracji pulpitu Flatpak podaje, że pasujące rozszerzenia motywu GTK są automatycznie instalowane podczas instalacji lub aktualizacji aplikacji, jeśli są obecne w zdalnym urządzeniu. Dlatego jeśli rozszerzenie jest dostępne, ale niedostępne, aktualizacja aplikacji może być wystarczająca. Wyniki wyszukiwania mogą się różnić w zależności od zmian w zdalnych urządzeniach i pakietach, dlatego traktuj lokalne dane wyjściowe Flatpak jako bieżące sprawdzenie, a nie zakładaj nazwy pakietu.
Krok 3: Uruchom ponownie aplikację i odśwież usługę ustawień pulpitu
Zamknij całkowicie aplikację, której dotyczy problem, łącznie z wszelkimi wystąpieniami w tle, a następnie otwórz ją ponownie. Działający proces może zachować ustawienia wyglądu odczytane podczas uruchamiania.
Jeżeli używasz Wayland i kilka pakietów GTK Flatpak nadal ignoruje wybrany styl, sprawdź, czy zainstalowany jest pakiet back-end portalu GTK:
dpkg -l xdg-desktop-portal xdg-desktop-portal-gtk
Poszukaj statusu zainstalowanego na liście pakietów. Dokumentacja Flatpak wyraźnie wskazuje, xdg-desktop-portal-gtkże jest on wymagany dla motywów i czcionek GTK. Jeśli go brakuje, zainstaluj pakiet Ubuntu z oficjalnego archiwum:
sudo apt update
sudo apt install xdg-desktop-portal-gtk
Najpierw zapisz pracę w otwartych aplikacjach. Następnie wyloguj się i zaloguj ponownie, co spowoduje ponowne uruchomienie sesji użytkownika i usług portalu. Jest to zazwyczaj najprostsza opcja dla początkujących. Zaawansowani użytkownicy mogą ponownie uruchomić swoje usługi użytkownika z poziomu terminala za pomocą systemctl --user restart xdg-desktop-portal.service xdg-desktop-portal-gtk.service, ale nazwy usług i sposób aktywacji mogą się różnić w zależności od instalacji. Jeśli to polecenie zgłosi, że jednostka nie jest załadowana, użyj wylogowania zamiast wielokrotnego ponownego uruchamiania usług.
Krok 4: Sprawdź, czy aplikacja obsługuje motyw
Otwórz ponownie ten sam Flatpak i porównaj jego przyciski, menu i zawartość okien z aplikacją GTK zainstalowaną z pakietów Ubuntu. Jeśli różni się tylko jeden Flatpak, problem może dotyczyć zestawu narzędzi, środowiska uruchomieniowego lub implementacji tej aplikacji. Na przykład niektóre aplikacje GTK 4 korzystają z biblioteki libadwaita, która celowo stosuje się do konwencji projektowych GNOME i nie obsługuje dowolnych motywów GTK w taki sam sposób, jak starsze aplikacje GTK 3. Rozszerzenia Flatpak dla GTK 3 również nie zmienią stylu aplikacji Qt.
Gdy aplikacja korzysta z najnowszego środowiska uruchomieniowego i obecne jest rozszerzenie motywu GTK 3, ustawienie pulpitu powinno zostać automatycznie zastosowane. Jeśli tak się nie dzieje, sprawdź środowisko uruchomieniowe aplikacji za pomocą:
flatpak info APP_ID
Zastąp APP_IDrzeczywistym identyfikatorem aplikacji. Dane wyjściowe pomogą Ci zidentyfikować środowisko wykonawcze i gałąź, które należy zgłosić w przypadku kontaktu z opiekunem aplikacji. Samo w sobie nie dowodzi to, czy aplikacja respektuje preferencje motywu GTK.
Typowe rozwiązania, których należy unikać
- Nie udzielaj szerokiego dostępu do systemu plików hosta jako pierwszego rozwiązania. Dokumentacja Flatpak wskazuje, że udostępnianie plików motywu hosta może osłabić środowisko testowe i zmniejszyć przenośność. Preferuj utrzymywane rozszerzenie motywu i działającą integrację z pulpitem.
- Nie zakładaj, że instalacja motywu za pomocą APT spowoduje jego instalację w każdym pakiecie Flatpak. APT zmienia hosta. Środowisko wykonawcze Flatpak nadal wymaga kompatybilnego rozszerzenia lub obsługiwanej ścieżki ustawień.
- Nie należy mylić trybu ciemnego z motywem GTK. Preferencje dotyczące schematu kolorów pulpitu i pełny motyw GTK to powiązane, ale odrębne ustawienia. Aplikacja i jej środowisko uruchomieniowe muszą obsługiwać odpowiednie preferencje.
- Nie resetuj wszystkich ustawień GNOME ani nie usuwaj folderów motywów. Takie działania mogą usunąć niepowiązane preferencje i nie dodadzą brakującego rozszerzenia Flatpak.
- Nie należy używać nadpisywania zmiennych środowiskowych jako uniwersalnego rozwiązania. Nadpisywanie może się różnić w zależności od zestawu narzędzi i aplikacji, a także może ukrywać faktyczny brak rozszerzenia lub problem z portalem.
Sprawdź wynik
Po zaktualizowaniu lub zainstalowaniu odpowiedniego rozszerzenia i ponownym uruchomieniu sesji lub aplikacji należy sprawdzić trzy rzeczy: host nadal zgłasza oczekiwaną nazwę motywu GTK; odpowiednie rozszerzenie motywu pojawia się w zainstalowanych aplikacjach Flatpak; a kontrolki GTK danej aplikacji mają teraz oczekiwany wygląd. Listę zainstalowanych Flatpaków można wyświetlić za pomocą:
flatpak list --app
Jeśli motyw hosta jest poprawny, rozszerzenie jest niedostępne dla środowiska uruchomieniowego aplikacji, a tylko jedna aplikacja pozostaje wizualnie inna, ograniczenie może być specyficzne dla danej aplikacji, a nie wynikać z uszkodzonego motywu Ubuntu. Podczas zgłaszania należy uwzględnić identyfikator aplikacji Flatpak, gałąź środowiska uruchomieniowego, typ sesji, nazwę motywu i status odpowiedniego pakietu portalu. Dzięki temu osoby zarządzające projektem uzyskają szczegółowe informacje potrzebne do odróżnienia luki w pakiecie od problemu z ustawieniami pulpitu.
Oficjalne źródła