Dacă o aplicație Flatpak se deschide cu Adwaita în timp ce restul Ubuntu 24.04 folosește Yaru, fișierele temei instalate pe desktop ar putea fi în regulă. Flatpak rulează aplicații într-un sandbox, deci un program nu citește automat fiecare fișier temă gazdă. Soluția este de obicei să vă asigurați că tema selectată este disponibilă pentru runtime-ul Flatpak și că serviciul de setări desktop poate comunica alegerea activă.
Acest ghid începe cu verificări simple și trece la depanarea problemelor specifice. Se aplică în principal aplicațiilor GTK 3. Aplicațiile GTK 4 și libadwaita pot urma reguli de stilizare diferite, așadar nu este garantat ca o temă care funcționează în Fișiere sau într-o altă aplicație GTK 3 să se aplice fiecărei ferestre Flatpak.
Ce trebuie să știi mai întâi
O temă GTK controlează aspectul elementelor de interfață, cum ar fi butoanele și meniurile, în aplicații care utilizează GTK, un set de instrumente pentru construirea de interfețe grafice. Un runtime Flatpak oferă biblioteci partajate utilizate de o aplicație sandbox. Sandbox-ul menține sistemul de fișiere al aplicației separat de sistemul gazdă. Drept urmare, fișierele temei gazdă din locații precum /usr/share/themesnu sunt pur și simplu copiate în fiecare Flatpak.
Abordarea acceptată de Flatpak pentru temele GTK 3 este o extensie numită după temă, de obicei după cum urmează org.gtk.Gtk3theme.ThemeName. Dacă acea extensie există în telecomanda configurată pentru timpul de execuție al aplicației, Flatpak o poate instala împreună cu aplicația sau în timpul unei actualizări. De asemenea, desktopul trebuie să expună setarea activă: XSettings este utilizat pe X11, în timp ce portalul Setări o furnizează pe Wayland. Un portal este un serviciu desktop care oferă aplicațiilor din sandbox acces controlat la funcții și preferințe desktop selectate.
Tema implicită Yaru a Ubuntu este instalată pe gazdă, dar acest fapt în sine nu dovedește că există o extensie de temă Flatpak corespunzătoare pentru fiecare aplicație și runtime. Disponibilitatea poate depinde de numele temei, de telecomanda Flatpak configurată, de ramura runtime și de setul de instrumente. Flatpak documentează Adwaita ca soluție de rezervă atunci când o temă sau o interfață de setări nu este disponibilă.
Pasul 1: Confirmați tema și sesiunea gazdă
Mai întâi verificați dacă tema este aplicată aplicațiilor desktop obișnuite. Deschideți Setări → Aspect , notați stilul selectat și deschideți o aplicație GTK preinstalată. Dacă aplicațiile gazdă arată și ele greșit, corectați aspectul desktopului înainte de a modifica setările Flatpak.
Puteți inspecta numele temei GTK din Terminal cu:
gsettings get org.gnome.desktop.interface gtk-theme
Rezultatul este un nume între ghilimele, de exemplu 'Yaru'. Înregistrați ortografia și majusculele. Flatpak potrivește numele temei GTK selectate de gazdă cu o extensie; căutarea unei teme similare, dar cu nume diferit, s-ar putea să nu rezolve nepotrivirea. Proiectul Yaru al Ubuntu documentează Yaru ca suită de teme GTK implicită a Ubuntu.
De asemenea, identificați dacă sesiunea dvs. este Wayland sau X11. Pe ecranul de conectare, selectați utilizatorul și utilizați meniul roată dințată, dacă este disponibil; numele sesiunii este de obicei afișat acolo. Acest lucru este important deoarece calea de setări diferă: Wayland se bazează pe un portal, în timp ce X11 folosește XSettings. Sesiunea GNOME implicită a Ubuntu 24.04 folosește de obicei Wayland, dar utilizatorii pot alege o altă sesiune.
Pasul 2: Actualizați Flatpak și verificați disponibilitatea extensiei temei
Rulați o actualizare generală Flatpak pentru ca aplicațiile instalate, runtime-urile și extensiile disponibile să poată fi reîmprospătate:
flatpak update
Verificați modificările propuse înainte de a confirma. Apoi, căutați telecomenzile configurate pentru extensii care corespund numelui temei înregistrat. Pentru o selecție Yaru, încercați:
flatpak search org.gtk.Gtk3theme.Yaru
Dacă căutarea returnează o extensie potrivită, notați ID-ul exact al aplicației și telecomanda afișate. Instalați-o numai dacă Flatpak nu a instalat-o deja. Folosiți ID-ul și telecomanda exact așa cum sunt afișate:
flatpak install REMOTE EXTENSION_ID
Înlocuiți ambele titluri provizorii scrise cu majuscule cu valorile reale. Nu copiați un ID de extensie ghicit dintr-o temă sau o ramură de execuție fără legătură. Este posibil ca unele versiuni de extensii să nu fie disponibile pentru o anumită execuție; în acest caz, aplicația poate continua să utilizeze Adwaita chiar dacă gazda are Yaru.
Documentația proprie de integrare desktop a Flatpak precizează că extensiile temei GTK corespunzătoare sunt instalate automat în timpul instalării sau actualizării aplicației, atunci când sunt prezente în dispozitivul de control remote. Prin urmare, dacă extensia este disponibilă, dar absentă, actualizarea aplicației poate fi suficientă. Rezultatele căutării pot varia pe măsură ce dispozitivele de control remote și pachetele se schimbă, așadar tratați rezultatul Flatpak local ca fiind verificarea curentă, în loc să presupuneți un nume de pachet.
Pasul 3: Reporniți aplicația și actualizați serviciul de setări desktop
Închideți complet aplicația afectată, inclusiv orice instanță din fundal, apoi redeschideți-o. Un proces care rulează poate păstra setările de aspect pe care le-a citit la pornire.
Dacă folosești Wayland și mai multe Flatpak-uri GTK ignoră în continuare stilul selectat, verifică dacă backend-ul portalului GTK este instalat:
dpkg -l xdg-desktop-portal xdg-desktop-portal-gtk
Căutați statusul „instalat” în lista de pachete. Documentația Flatpak identifică în mod specific xdg-desktop-portal-gtktemele și fonturile GTK ca fiind obligatorii. Dacă lipsește, instalați pachetul Ubuntu din arhiva oficială:
sudo apt update
sudo apt install xdg-desktop-portal-gtk
Salvați mai întâi lucrul în aplicațiile deschise. Apoi deconectați-vă și conectați-vă din nou, ceea ce repornește fără probleme sesiunea utilizatorului și serviciile portalului aferente. Aceasta este de obicei cea mai clară opțiune pentru un începător. Utilizatorii avansați își pot reporni serviciile din Terminal cu systemctl --user restart xdg-desktop-portal.service xdg-desktop-portal-gtk.service, dar numele serviciilor și comportamentul de activare pot diferi în funcție de instalare. Dacă comanda respectivă raportează că o unitate nu este încărcată, utilizați o deconectare în loc să reporniți serviciile în mod repetat.
Pasul 4: Verificați dacă aplicația este compatibilă cu tema
Redeschideți același Flatpak și comparați butoanele, meniurile și conținutul ferestrelor sale cu o aplicație GTK instalată din pachetele Ubuntu. Dacă diferă doar un Flatpak, problema poate fi specifică setului de instrumente, runtime-ului sau implementării aplicației respective. De exemplu, unele aplicații GTK 4 folosesc libadwaita, care respectă în mod intenționat convențiile de design GNOME și nu acceptă teme GTK arbitrare în același mod în care o fac aplicațiile GTK 3 mai vechi. Extensiile Flatpak pentru GTK 3 nu vor restiliza o aplicație Qt.
Când o aplicație folosește o versiune recentă de runtime și este prezentă o extensie de temă GTK 3, setările desktop ar trebui să fie aplicate automat. Dacă nu, verificați runtime-ul aplicației cu:
flatpak info APP_ID
Înlocuiți APP_IDcu ID-ul real al aplicației. Rezultatul vă ajută să identificați runtime-ul și ramura de raportat dacă contactați administratorul aplicației. Nu dovedește în sine dacă aplicația respectă preferințele temei GTK.
Remedii comune de evitat
- Nu acordați acces extins la sistemul de fișiere gazdă ca primă soluție. Documentația Flatpak menționează că expunerea fișierelor temei gazdă poate slăbi sandbox-ul și reduce portabilitatea. Preferați o extensie de temă întreținută și o integrare funcțională pe desktop.
- Nu presupune că instalarea unei teme cu APT o instalează în fiecare Flatpak. APT schimbă gazda. Runtime-ul Flatpak are nevoie în continuare de o extensie compatibilă sau de o cale de setări acceptată.
- Nu confundați modul întunecat cu o temă GTK. Preferința pentru schema de culori a desktopului și o temă GTK completă sunt setări corelate, dar distincte. Aplicația și runtime-ul acesteia trebuie să accepte preferința relevantă.
- Nu resetați toate setările GNOME și nu ștergeți folderele temelor. Astfel de pași pot elimina preferințele fără legătură și nu pot adăuga o extensie Flatpak lipsă.
- Nu utilizați suprascrierile variabilelor de mediu ca soluție universală. O suprascriere poate varia în funcție de setul de instrumente și aplicație și poate ascunde problema reală a extensiei sau portalului lipsă.
Verificați rezultatul
După actualizarea sau instalarea extensiei corespunzătoare și repornirea sesiunii sau a aplicației, confirmați trei lucruri: gazda raportează în continuare numele temei GTK așteptat; extensia temei relevantă apare în aplicațiile instalate ale Flatpak; și controalele GTK ale aplicației afectate au acum aspectul așteptat. Puteți lista Flatpak-urile instalate cu:
flatpak list --app
Dacă tema gazdă este corectă, extensia nu este disponibilă pentru runtime-ul aplicației și doar o aplicație rămâne diferită vizual, limitarea poate fi specifică aplicației și nu o temă Ubuntu defectă. Includeți ID-ul aplicației Flatpak, ramura runtime, tipul sesiunii, numele temei și starea pachetului portal relevant atunci când completați un raport. Acest lucru oferă administratorilor detaliile necesare pentru a distinge o lacună în pachet de o problemă de setări desktop.
Referințe oficiale