Behebung des Problems, dass Flatpak-Apps GTK-Themes in Ubuntu 24.04 nicht berücksichtigen

Wenn eine Flatpak-Anwendung mit Adwaita geöffnet wird, während der Rest von Ubuntu 24.04 Yaru verwendet, sind die auf Ihrem Desktop installierten Designdateien möglicherweise in Ordnung. Flatpak führt Anwendungen in einer Sandbox aus, daher liest ein Programm nicht automatisch alle Designdateien des Hostsystems. Die Lösung besteht üblicherweise darin, sicherzustellen, dass das ausgewählte Design für die Flatpak-Laufzeitumgebung verfügbar ist und der Desktop-Einstellungsdienst die aktive Auswahl übermitteln kann.

Diese Anleitung beginnt mit einfachen Prüfungen und geht dann zur gezielten Fehlerbehebung über. Sie gilt primär für GTK-3-Anwendungen. GTK-4- und libadwaita-Anwendungen können anderen Gestaltungsregeln folgen, daher ist nicht garantiert, dass ein Design, das in der Dateien-App oder einer anderen GTK-3-Anwendung funktioniert, in jedem Flatpak-Fenster anwendbar ist.

Was Sie zuerst wissen müssen

Ein GTK-Theme steuert das Erscheinungsbild von Oberflächenelementen wie Schaltflächen und Menüs in Anwendungen, die GTK verwenden – ein Toolkit zur Erstellung grafischer Oberflächen. Eine Flatpak-Laufzeitumgebung stellt gemeinsam genutzte Bibliotheken bereit, die von einer in einer Sandbox ausgeführten Anwendung verwendet werden. Die Sandbox trennt das Dateisystem der Anwendung vom Hostsystem. Daher werden die Theme-Dateien des Hostsystems, die sich beispielsweise in bestimmten Verzeichnissen befinden, /usr/share/themesnicht einfach in jedes Flatpak kopiert.

Flatpak unterstützt für GTK-3-Themes eine Erweiterung, die nach dem Theme benannt ist, üblicherweise gefolgt von `.tk` org.gtk.Gtk3theme.ThemeName. Existiert diese Erweiterung im konfigurierten Remote-Verzeichnis der App-Laufzeitumgebung, kann Flatpak sie zusammen mit der App oder bei einem Update installieren. Der Desktop muss außerdem die aktive Einstellung bereitstellen: Unter X11 kommt XSettings zum Einsatz, unter Wayland das Einstellungsportal. Ein Portal ist ein Desktop-Dienst, der in einer Sandbox ausgeführten Apps kontrollierten Zugriff auf ausgewählte Desktop-Funktionen und -Einstellungen ermöglicht.

Das Standard-Yaru-Theme von Ubuntu ist auf dem Host installiert. Dies allein beweist jedoch nicht, dass für jede Anwendung und Laufzeitumgebung eine entsprechende Flatpak-Theme-Erweiterung verfügbar ist. Die Verfügbarkeit kann vom Theme-Namen, dem konfigurierten Flatpak-Remote, dem Laufzeit-Branch und dem Toolkit abhängen. Flatpak dokumentiert Adwaita als Fallback, falls ein Theme oder eine Einstellungsoberfläche nicht verfügbar ist.

Schritt 1: Bestätigen Sie das Host-Theme und die Sitzung.

Prüfen Sie zunächst, ob das Design auf normale Desktop-Anwendungen angewendet wird. Öffnen Sie Einstellungen → Darstellung , notieren Sie sich den ausgewählten Stil und öffnen Sie eine vorinstallierte GTK-Anwendung. Falls auch Host-Anwendungen fehlerhaft dargestellt werden, korrigieren Sie die Desktop-Darstellung, bevor Sie die Flatpak-Einstellungen ändern.

Den Namen des GTK-Themes können Sie im Terminal mit folgendem Befehl anzeigen:

gsettings get org.gnome.desktop.interface gtk-theme

Das Ergebnis ist ein Name in Anführungszeichen, zum Beispiel „.txt“ 'Yaru'. Notieren Sie sich die Schreibweise und Groß-/Kleinschreibung. Flatpak ordnet den vom Host ausgewählten GTK-Theme-Namen einer Dateiendung zu; die Suche nach einem ähnlichen, aber anders benannten Theme behebt das Problem möglicherweise nicht. Das Yaru-Projekt von Ubuntu dokumentiert Yaru als die standardmäßige GTK-Theme-Suite von Ubuntu.

Prüfen Sie außerdem, ob Ihre Sitzung Wayland oder X11 ist. Wählen Sie auf dem Anmeldebildschirm Ihren Benutzer aus und verwenden Sie gegebenenfalls das Zahnradmenü; der Sitzungsname wird dort normalerweise angezeigt. Dies ist wichtig, da sich die Pfade zu den Einstellungen unterscheiden: Wayland verwendet ein Portal, während X11 XSettings nutzt. Die Standard-GNOME-Sitzung von Ubuntu 24.04 verwendet üblicherweise Wayland, Benutzer können jedoch eine andere Sitzung auswählen.

Schritt 2: Flatpak aktualisieren und Verfügbarkeit der Theme-Erweiterung prüfen

Führen Sie ein allgemeines Flatpak-Update durch, damit installierte Anwendungen, Laufzeitumgebungen und verfügbare Erweiterungen aktualisiert werden:

flatpak update

Überprüfen Sie die vorgeschlagenen Änderungen, bevor Sie sie bestätigen. Suchen Sie anschließend in den konfigurierten Fernbedienungen nach Erweiterungen, die dem von Ihnen notierten Themennamen entsprechen. Für eine Yaru-Auswahl versuchen Sie Folgendes:

flatpak search org.gtk.Gtk3theme.Yaru

Wenn die Suche eine passende Erweiterung liefert, notieren Sie sich die genaue Anwendungs-ID und den angezeigten Remote-Namen. Installieren Sie die Erweiterung nur, wenn sie nicht bereits von Flatpak installiert wurde. Verwenden Sie die ID und den Remote-Namen exakt wie angezeigt.

flatpak install REMOTE EXTENSION_ID

Ersetzen Sie die beiden großgeschriebenen Platzhalter durch die tatsächlichen Werte. Kopieren Sie keine vermutete Erweiterungs-ID aus einem nicht zugehörigen Theme oder Runtime-Branch. Einige Erweiterungs-Builds sind möglicherweise für eine bestimmte Runtime nicht verfügbar; in diesem Fall kann die App Adwaita weiterhin verwenden, auch wenn auf dem Host Yaru installiert ist.

Laut Flatpaks eigener Dokumentation zur Desktop-Integration werden passende GTK-Theme-Erweiterungen bei der Installation oder Aktualisierung einer App automatisch installiert, sofern sie im Remote-Repository vorhanden sind. Wenn die Erweiterung also verfügbar, aber nicht vorhanden ist, kann ein App-Update ausreichen. Da die Suchergebnisse je nach Remote-Repository und Paket variieren können, sollten Sie Ihre lokale Flatpak-Ausgabe als aktuelle Prüfgrundlage verwenden und nicht von einem Paketnamen ausgehen.

Schritt 3: Starten Sie die App neu und aktualisieren Sie den Desktop-Einstellungsdienst.

Schließen Sie die betroffene App vollständig, einschließlich aller Hintergrundprozesse, und öffnen Sie sie anschließend erneut. Ein laufender Prozess behält möglicherweise die beim Start gelesenen Darstellungseinstellungen bei.

Falls Sie Wayland verwenden und mehrere GTK Flatpaks den ausgewählten Stil weiterhin ignorieren, überprüfen Sie, ob das GTK-Portal-Backend installiert ist:

dpkg -l xdg-desktop-portal xdg-desktop-portal-gtk

Prüfen Sie den Installationsstatus in der Paketliste. Die Flatpak-Dokumentation weist ausdrücklich darauf hin, xdg-desktop-portal-gtkdass es für GTK-Themes und -Schriftarten erforderlich ist. Falls es fehlt, installieren Sie das Ubuntu-Paket aus dem offiziellen Archiv.

sudo apt update
sudo apt install xdg-desktop-portal-gtk

Speichern Sie zunächst Ihre Arbeit in geöffneten Anwendungen. Melden Sie sich anschließend ab und wieder an. Dadurch werden die Benutzersitzung und die zugehörigen Portaldienste sauber neu gestartet. Dies ist in der Regel die einfachste Vorgehensweise für Anfänger. Fortgeschrittene Benutzer können ihre Benutzerdienste über das Terminal mit dem Befehl `startup` neu starten. Beachten Sie systemctl --user restart xdg-desktop-portal.service xdg-desktop-portal-gtk.servicejedoch, dass Dienstnamen und Aktivierungsverhalten je nach Installation variieren können. Meldet der Befehl, dass eine Einheit nicht geladen ist, melden Sie sich ab, anstatt die Dienste wiederholt neu zu starten.

Schritt 4: Prüfen Sie, ob die Anwendung das Design unterstützt.

Öffnen Sie dasselbe Flatpak erneut und vergleichen Sie dessen Schaltflächen, Menüs und Fensterinhalte mit einer GTK-Anwendung, die über die Ubuntu-Pakete installiert wurde. Wenn nur ein Flatpak Unterschiede aufweist, liegt das Problem möglicherweise am Toolkit, der Laufzeitumgebung oder der Implementierung dieser Anwendung. Beispielsweise verwenden einige GTK-4-Anwendungen libadwaita, das bewusst den Designkonventionen von GNOME folgt und im Gegensatz zu älteren GTK-3-Anwendungen keine beliebigen GTK-Themes unterstützt. Flatpak-Erweiterungen für GTK 3 können das Design einer Qt-Anwendung ebenfalls nicht verändern.

Wenn eine App eine aktuelle Laufzeitumgebung verwendet und eine GTK-3-Theme-Erweiterung vorhanden ist, sollte die Desktop-Einstellung normalerweise automatisch angewendet werden. Falls dies nicht der Fall ist, überprüfen Sie die Laufzeitumgebung der App mit folgendem Befehl:

flatpak info APP_ID

Ersetzen Sie dies APP_IDdurch die tatsächliche App-ID. Die Ausgabe hilft Ihnen, die Laufzeitumgebung und den entsprechenden Branch zu identifizieren, falls Sie den App-Entwickler kontaktieren. Sie beweist jedoch nicht, ob die Anwendung die GTK-Theme-Einstellungen berücksichtigt.

Häufige Fehler, die man vermeiden sollte

  • Gewähren Sie nicht als erste Lösung einen umfassenden Zugriff auf das Host-Dateisystem. Die Flatpak-Dokumentation weist darauf hin, dass die Freigabe von Host-Theme-Dateien die Sandbox schwächen und die Portabilität beeinträchtigen kann. Bevorzugen Sie eine gepflegte Theme-Erweiterung und eine funktionierende Desktop-Integration.
  • Gehen Sie nicht davon aus, dass die Installation eines Themes mit APT dieses automatisch in jedem Flatpak-Paket installiert. APT ändert den Host. Die Flatpak-Laufzeitumgebung benötigt weiterhin eine kompatible Erweiterung oder einen unterstützten Einstellungspfad.
  • Verwechseln Sie den Dunkelmodus nicht mit einem GTK-Theme. Die Farbschema-Einstellungen des Desktops und ein vollständiges GTK-Theme sind zwar verwandt, aber dennoch unterschiedliche Einstellungen. Die Anwendung und ihre Laufzeitumgebung müssen die jeweilige Einstellung unterstützen.
  • Setzen Sie nicht alle GNOME-Einstellungen zurück und löschen Sie keine Designordner. Dadurch können nicht benötigte Einstellungen entfernt und fehlende Flatpak-Erweiterungen nicht hinzugefügt werden.
  • Verwenden Sie Umgebungsvariablenüberschreibungen nicht als Universallösung. Eine Überschreibung kann je nach Toolkit und Anwendung variieren und das eigentliche Problem mit der fehlenden Erweiterung oder dem Portal verschleiern.

Ergebnis überprüfen

Nach dem Aktualisieren oder Installieren der passenden Erweiterung und dem Neustart der Sitzung oder App überprüfen Sie bitte drei Dinge: Der Host meldet weiterhin den erwarteten GTK-Theme-Namen; die entsprechende Theme-Erweiterung wird in den installierten Flatpak-Anwendungen angezeigt; und die GTK-Steuerelemente der betroffenen App entsprechen nun dem erwarteten Erscheinungsbild. Sie können die installierten Flatpaks mit folgendem Befehl auflisten:

flatpak list --app

Wenn das Host-Theme korrekt ist, die Erweiterung für die Laufzeitumgebung der App nicht verfügbar ist und nur eine Anwendung optisch anders aussieht, liegt die Einschränkung möglicherweise an der jeweiligen App und nicht an einem fehlerhaften Ubuntu-Theme. Geben Sie bei der Meldung die Flatpak-App-ID, den Laufzeitzweig, den Sitzungstyp, den Theme-Namen und den relevanten Portal-Paketstatus an. Dies liefert den Maintainern die notwendigen Informationen, um eine Paketierungslücke von einem Problem mit den Desktop-Einstellungen zu unterscheiden.

Offizielle Referenzen

Einen Kommentar hinterlassen

Behebung des Problems, dass Flatpak-Apps GTK-Themes in Ubuntu 24.04 nicht berücksichtigen

Behebung des Problems, dass Flatpak-Apps GTK-Themes in Ubuntu 24.04 nicht berücksichtigen

Erfahren Sie, warum Flatpak-Apps die GTK-Themes von Ubuntu 24.04 möglicherweise ignorieren, und befolgen Sie sichere Schritte, um Theme-Erweiterungen zu überprüfen, Flatpak-Apps zu aktualisieren und Portalprobleme zu diagnostizieren.

So installieren Sie Ubuntu 24.04 und Windows 11 im Dual-Boot-Modus mit aktiviertem BitLocker

So installieren Sie Ubuntu 24.04 und Windows 11 im Dual-Boot-Modus mit aktiviertem BitLocker

Installieren Sie Ubuntu 24.04 sicher neben Windows 11 mit BitLocker. Vergleichen Sie Pfade für separate und gemeinsam genutzte Laufwerke, Wiederherstellungsschlüssel, Partitionierung und Startvorgänge.

Wie man das Problem behebt, dass Nvidia-Treiber nach einem Kernel-Update unter Ubuntu nicht geladen werden

Wie man das Problem behebt, dass Nvidia-Treiber nach einem Kernel-Update unter Ubuntu nicht geladen werden

Beheben Sie NVIDIA-Treiberfehler nach einem Ubuntu-Kernel-Update. Überprüfen Sie DKMS und Secure Boot, erstellen Sie das entsprechende Modul neu, registrieren Sie einen MOK und verifizieren Sie die Fehlerbehebung.

How to Fix Ubuntu 24.04 Wi-Fi Disconnecting After Suspend

How to Fix Ubuntu 24.04 Wi-Fi Disconnecting After Suspend

Fix Ubuntu 24.04 Wi-Fi drops after suspend with checks for NetworkManager, radio blocks, updates, power saving, and drivers—then verify each resume.

Hohe CPU-Auslastung durch Tracker-Miner-3 unter Ubuntu GNOME beheben

Hohe CPU-Auslastung durch Tracker-Miner-3 unter Ubuntu GNOME beheben

Erfahren Sie, warum tracker-miner-fs-3 unter Ubuntu GNOME eine hohe CPU-Auslastung aufweist und wie Sie die Indizierung überprüfen, Ordner ausschließen, Ubuntu aktualisieren oder den Suchindex sicher neu erstellen können.

Behebung des Fehlers „Kein bootfähiges Gerät gefunden“ nach der Installation von Debian auf UEFI

Behebung des Fehlers „Kein bootfähiges Gerät gefunden“ nach der Installation von Debian auf UEFI

Den UEFI-Bootfehler von Debian beheben, indem man den Bootmodus, die EFI-Systempartition, die GRUB-Dateien und die Bootreihenfolge der Firmware überprüft – ohne Debian vorher neu installieren zu müssen.

Windows 11 update tastatur geht nicht mehr

Windows 11 update tastatur geht nicht mehr

Nach einem Windows 11 Update funktioniert die Tastatur nicht mehr? Hier erfahren Sie die schnelle Lösung für Windows 11 update tastatur geht nicht mehr mit konkreten Schritten.

Google Chrome funktioniert nicht

Google Chrome funktioniert nicht

Google Chrome funktioniert nicht? Hier erfahren Sie konkrete Lösungen, mit denen Sie den Browser innerhalb weniger Minuten wieder stabil nutzen können.

Windows 11 startmenü funktioniert nicht

Windows 11 startmenü funktioniert nicht

Windows 11 startmenü funktioniert nicht? Erfahren Sie hier die bewährten Lösungen, um das Startmenü in Windows 11 schnell wiederherzustellen und stabile Nutzung zu gewährleisten.

Windows 11 start button funktioniert nicht

Windows 11 start button funktioniert nicht

Windows 11 start button funktioniert nicht? Hier erfahren Sie, wie Sie den Start-Button in Windows 11 schnell reparieren und wieder aktivieren.