Napraw aplikacje Flatpak, które nie respektują motywów GTK w Ubuntu 24.04

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

Zostaw komentarz

Uruchom w tle funkcję przesyłania zdjęć na iPhone'a za pomocą NextCloud

Uruchom w tle funkcję przesyłania zdjęć na iPhone'a za pomocą NextCloud

Przywróć wykrywanie zdjęć w tle, sprawdzając ustawienia przesyłania Nextcloud, uprawnienia iOS, tryb baterii i ograniczenia harmonogramu działania iPhone'a w tle.

Wyraźniejszy tekst w aplikacji ONLYOFFICE Desktop: dostosuj podpowiedzi dotyczące czcionek w systemie Linux

Wyraźniejszy tekst w aplikacji ONLYOFFICE Desktop: dostosuj podpowiedzi dotyczące czcionek w systemie Linux

Porównaj tryby podpowiedzi czcionek ONLYOFFICE, sprawdź powiększenie i dostępność czcionek w systemie Linux oraz zweryfikuj, czy rozmycie jest ograniczone do edytora, czy też ma wpływ na cały pulpit.

Przekształć plik PDF w edytowalny plik DOCX w aplikacji ONLYOFFICE Desktop

Przekształć plik PDF w edytowalny plik DOCX w aplikacji ONLYOFFICE Desktop

Konwertuj plik PDF lokalnie w edytorach ONLYOFFICE Desktop Editors, a następnie sprawdź plik DOCX pod kątem zmian układu, zeskanowanych stron i tekstu wymagającego korekty.

Połącz edytory pulpitu ONLYOFFICE z plikami ownCloud

Dodaj swoje konto ownCloud do ONLYOFFICE Desktop Editors, dowiedz się, co umożliwia to połączenie, i wybierz pomiędzy dostępem bezpośrednim, synchronizacją i edycją w przeglądarce.

Napraw przekroczenia limitu czasu aplikacji mobilnej ONLYOFFICE, sprawdzając adres URL serwera

Napraw przekroczenia limitu czasu aplikacji mobilnej ONLYOFFICE, sprawdzając adres URL serwera

Użyj właściwego portalu lub adresu WebDAV, przetestuj dostępność protokołu HTTPS z telefonu i rozróżnij problemy związane z siecią prywatną, protokołem TLS i logowaniem.

Włącz tworzenie i debugowanie wtyczek pulpitu ONLYOFFICE

Włącz tworzenie i debugowanie wtyczek pulpitu ONLYOFFICE

Zbuduj i przetestuj niestandardową wtyczkę ONLYOFFICE Desktop Editors, zainstaluj jej archiwum .plugin i aktywuj narzędzia programistyczne do debugowania.

Uruchamianie Pythona w programie Calc za pomocą systemu makr pakietu LibreOffice

Uruchamianie Pythona w programie Calc za pomocą systemu makr pakietu LibreOffice

Udostępnij funkcję Pythona w programie Calc, uruchom ją w otwartym arkuszu kalkulacyjnym i rozwiąż problemy z brakującymi makrami lub importami, nie mieszając LibreOffice i systemowego Pythona.

Zabezpiecz wybrany tekst autora hasłem sekcji

Zabezpiecz wybrany tekst autora hasłem sekcji

Zablokuj konkretny fragment, uniemożliwiając jego edycję, jednocześnie zachowując użyteczność reszty dokumentu programu Writer, i dowiedz się, kiedy szyfrowanie plików jest lepszym wyborem.

Uczyń tekst arkusza kalkulacyjnego czytelnym w trybie ciemnym LibreOffice Calc

Uczyń tekst arkusza kalkulacyjnego czytelnym w trybie ciemnym LibreOffice Calc

Napraw trudno widoczny tekst w arkuszu kalkulacyjnym, sprawdzając motyw, kolor czcionki komórek, wypełnienia i formatowanie warunkowe w programie Calc.

LibreOffice Calc wyświetla formuły jako tekst? Przywróć wyniki

LibreOffice Calc wyświetla formuły jako tekst? Przywróć wyniki

Dowiedz się, dlaczego Calc wyświetla tekst formuły zamiast obliczonych wartości, i napraw tryb wyświetlania, komórki w formacie tekstowym, apostrofy i nieaktualne wyniki.