Risolvere il problema delle app Flatpak che non rispettano il tema GTK in Ubuntu 24.04

Guida rapida: cosa risolve solitamente il problema della discrepanza

Se un'applicazione Flatpak su Ubuntu 24.04 si apre con Adwaita o un'interfaccia chiara mentre il desktop è impostato su scuro, verifica innanzitutto se l'applicazione utilizza GTK 3 o GTK 4/libadwaita. Dopodiché, aggiorna Flatpak, rendi disponibile l'estensione del tema GTK 3 corrispondente e verifica che il portale del desktop sia installato. Le applicazioni Flatpak vengono eseguite in un ambiente sandbox, quindi non leggono automaticamente tutti i file di tema installati sul sistema host Ubuntu.

Ciò che vediProbabile causaPrima azione
L'applicazione GTK 3 utilizza Adwaita al posto di Yaru.L'estensione del tema attivo risulta mancante o non visibile in fase di esecuzione dell'app.Aggiorna Flatpak e installa l'estensione del tema corrispondente.
Flatpak ignora lo stile oscuro di UbuntuProblema relativo al portale, alle impostazioni della combinazione di colori o al supporto dell'app.Controlla l'aspetto, i pacchetti del portale e riavvia l'app.
Solo un'app ha un aspetto diversoL'app potrebbe utilizzare GTK 4/libadwaita, Qt, Electron o uno stile personalizzato.Identifica gli strumenti necessari prima di modificare le impostazioni di sistema.

Questi passaggi si applicano alle applicazioni Flatpak su Ubuntu 24.04, in particolare a quelle installate da Flathub. Non obbligano ogni applicazione a utilizzare lo stile desktop completo di Ubuntu. Le estensioni del tema GTK 3, la preferenza chiaro/scuro, le icone e gli stili specifici delle applicazioni sono elementi separati.

Come funziona l'abbinamento dei temi di Flatpak

Un'applicazione Flatpak utilizza il proprio ambiente di runtime anziché le librerie di sistema e le directory dei temi dell'host. Flatpak non può semplicemente esporre Ubuntu /usr/share/themescome sorgente dei temi dell'applicazione: l'ambiente di runtime ha un proprio filesystem e i temi possono dipendere da una specifica versione di GTK. Pertanto, Flatpak distribuisce i temi GTK 3 supportati come estensioni di runtime.

Flatpak è in grado di leggere il nome del tema GTK attivo dell'host e installare un'estensione corrispondente, se disponibile nel repository remoto dell'app. Il tema deve comunque essere esposto all'app. Su X11, GTK 3 può ricevere il tema selezionato tramite XSettings. Su Wayland, GTK legge le impostazioni di aspetto pertinenti tramite un portale di impostazioni desktop. Se l'estensione del tema o un percorso di integrazione adeguato non sono disponibili, un'app può ripiegare su Adwaita.

Il pannello Impostazioni di Ubuntu 24.04 offre stili desktop chiaro e scuro. Questa preferenza non equivale a imporre a tutte le applicazioni l'utilizzo del tema Yaru GTK 3. Le applicazioni GTK 4 create con libadwaita generalmente seguono le preferenze di aspetto del sistema supportate, ma non accettano necessariamente override arbitrari dei temi GTK legacy. Un'estensione per temi Flatpak denominata per GTK 3 non modificherà lo stile di tutte le applicazioni GTK 4 o libadwaita.

Per una panoramica tecnica, consultare la documentazione di Flatpak sull'integrazione con il desktop e la personalizzazione dei temi, nonché la documentazione sul supporto del portale GTK .

1. Conferma lo stile del desktop e il nome del tema

Apri Impostazioni > Aspetto e seleziona lo stile desiderato, Chiaro o Scuro. La scelta verrà applicata immediatamente al desktop. Se utilizzi GNOME Tweaks o un altro strumento per selezionare un tema GTK personalizzato, prendi nota del nome esatto del tema; i nomi dei pacchetti e i nomi dei temi possono differire per maiuscole/minuscole o suffissi.

È possibile leggere il nome del tema GTK attivo e la preferenza della combinazione di colori nel Terminale:

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

Il primo comando riporta il nome del tema memorizzato nelle impostazioni di GNOME; il secondo riporta lo schema chiaro/scuro preferito, se supportato. Questi comandi si limitano a esaminare i valori. Evitate di impostare un nome di tema copiato da un tutorial, a meno che quel tema non sia installato e non intendiate utilizzarlo. Riavviate l'applicazione interessata dopo aver modificato le impostazioni di aspetto, poiché molti programmi leggono il tema all'avvio.

2. Aggiorna Flatpak e installa l'estensione del tema corrispondente.

Innanzitutto, aggiorna le applicazioni e i runtime installati. L'integrazione dei temi documentata da Flatpak può installare automaticamente un'estensione corrispondente durante un'installazione o un aggiornamento, qualora il tema sia disponibile dal repository remoto configurato.

flatpak update

Se l'app utilizza ancora il tema di fallback, elenca le estensioni del tema GTK esposte da Flathub:

flatpak remote-ls --columns=application flathub | grep '^org.gtk.Gtk3theme'

Scegli un'estensione il cui nome corrisponda al tema GTK 3 che hai selezionato. Flathub attualmente elenca le varianti del tema Yaru, tra cui org.gtk.Gtk3theme.Yaru-light. Ad esempio, installa quella variante solo se corrisponde al tema che desideri:

flatpak install flathub org.gtk.Gtk3theme.Yaru-light

La descrizione del tema Yaru-light su Flathub lo identifica come un pacchetto di temi GTK. Il nome del tema corrispondente dipende dalle impostazioni dell'host e da ciò che il repository remoto pubblica attualmente. Se si utilizza una variante diversa di Yaru o un tema di terze parti, consultare flatpak searchla documentazione del repository remoto per trovare l'ID di estensione esatto; non dedurre il suffisso del pacchetto dal suo nome visivo.

Se il tema è installato ma l'applicazione era già in esecuzione, chiudi tutte le finestre e riaprila. In caso di problemi persistenti, esegui nuovamente l'aggiornamento dopo aver verificato che l'estensione e l'applicazione provengano dalla stessa installazione di Flatpak.

flatpak list --app
flatpak list --runtime | grep -i theme
flatpak update

Flatpak distingue tra installazioni per utente e installazioni di sistema. Se hai installato l'app con --userma hai installato l'estensione a livello di sistema, o viceversa, l'app potrebbe non trovare l'estensione dove previsto. Mantieni l'app e l'estensione nello stesso ambito di installazione, ove possibile. Puoi ispezionare l'installazione di una specifica app con flatpak info APP_ID.

3. Controlla il portale desktop su Ubuntu 24.04

La documentazione del portale Flatpak di GTK afferma che xdg-desktop-portal-gtkè necessario per i temi e i font GTK. Ubuntu pubblica questo backend per la release Noble (24.04 LTS). Se il pacchetto non è presente, installalo dai repository di Ubuntu:

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

Anche Ubuntu GNOME utilizza il backend del portale GNOME per le funzionalità specifiche dell'ambiente desktop. L'installazione del backend GTK non implica la rimozione o la sostituzione del backend GNOME. Mantieni i pacchetti del portale forniti per il tuo ambiente desktop. Dopo l'installazione, disconnettiti e accedi di nuovo, oppure riavvia il servizio del portale utente e quindi riavvia l'applicazione interessata.

systemctl --user restart xdg-desktop-portal.service

Se systemd segnala che l'unità non è disponibile, disconnettiti e accedi di nuovo. I dettagli di attivazione del portale possono variare a seconda della sessione e dello stato del pacchetto. L'elenco dei pacchetti di Ubuntu conferma che xdg-desktop-portal-gtk è disponibile per Ubuntu 24.04 .

4. Decidi se l'app può utilizzare il tema

Se possibile, prova più di un Flatpak GTK 3. Se diverse app GTK 3 ora seguono il tema ma una no, il problema rimanente potrebbe essere specifico di quell'app o del suo runtime. Se le app GTK 3 funzionano ma un'app GNOME moderna presenta ancora un colore di accento o un aspetto dei widget diverso, è normale: le estensioni del tema GTK 3 non si applicano a GTK 4/libadwaita allo stesso modo.

Alcune app utilizzano Qt, Electron o un proprio toolkit di interfaccia anche se hanno un aspetto simile alle applicazioni GNOME. In tal caso, un'estensione per il tema GTK potrebbe non avere alcun effetto. Prima di modificare i permessi di Flatpak, consulta la documentazione ufficiale dell'app per verificare le opzioni di aspetto supportate. Per un Flatpak installato da Flathub, controlla l'ID dell'app e il runtime con:

flatpak info APP_ID

Sostituire APP_IDcon l'ID dell'applicazione mostrato da flatpak list --app. L'output aiuta a identificare il suo runtime e l'ambito di installazione; non sempre indica il toolkit, quindi, se necessario, conferma il toolkit dalla documentazione dell'app o dalla pagina del progetto.

Soluzioni comuni da evitare

  • Non concedere un accesso esteso al filesystem dell'host solo per copiare l'aspetto. Flatpak documenta le estensioni del tema e l'integrazione con il portale/XSettings come approcci standard. Un accesso esteso indebolisce l'isolamento della sandbox e può comunque fallire se le versioni di GTK dell'host e dell'ambiente di runtime differiscono.
  • Non utilizzare un'estensione per temi GTK 3 come interruttore universale per la modalità scura. Contiene file di tema per app GTK 3 compatibili; il supporto per la combinazione di colori di sistema è un'impostazione separata che l'app e il portale devono riconoscere.
  • Non reinstallare l'applicazione prima di averne verificato l'estensione e il runtime. La reinstallazione potrebbe scaricare lo stesso runtime senza risolvere il problema del tema mancante o della condizione del portale.
  • Non modificare la configurazione globale del portale come primo passo. La selezione del backend di Ubuntu GNOME è specifica per la sessione. La sostituzione delle preferenze del portale può influire sui selettori di file e su altre integrazioni del desktop, oltre al tema.

Lista di controllo per la verifica

  • Le impostazioni di Ubuntu mostrano lo stile desiderato, chiaro o scuro.
  • Il nome del tema GTK host è noto ed è disponibile un'estensione GTK 3 corrispondente per Flatpak.
  • flatpak updateL'installazione è completata e l'app e l'estensione del tema sono in un ambito di installazione compatibile.
  • Il xdg-desktop-portal-gtkpacchetto è stato installato; dopo le modifiche, la sessione utente o il portale sono stati riavviati.
  • L'applicazione interessata è stata completamente chiusa e riaperta.
  • Hai confrontato le app in base al toolkit: GTK 3, GTK 4/libadwaita, Qt o Electron possono rispondere in modo diverso.

Se la checklist viene superata e un'app rimane invariata, il passo successivo più utile è consultare il sistema di tracciamento dei bug o la documentazione di quell'applicazione, indicando il suo ID Flatpak, il runtime, il tipo di sessione Ubuntu (Wayland o X11) e l'output dei due gsettingscomandi di sola lettura. Questo aiuta a distinguere una scelta di stile specifica dell'app da un componente di integrazione desktop mancante, senza compromettere la sandbox.

La guida utente di Ubuntu descrive i controlli per la modalità chiara/scura in Impostazioni > Aspetto . Il comportamento di Flatpak può variare a seconda della versione, del runtime dell'applicazione, del backend del portale, del toolkit e dei metadati remoti; se il tema attivo non è incluso nel pacchetto del runtime, l'applicazione potrebbe continuare a utilizzare il proprio aspetto predefinito.

Lascia un commento

Ubuntu: come reimpostare la password di root o utente

Ubuntu: come reimpostare la password di root o utente

Scopri come reimpostare una password utente Ubuntu dimenticata dalla modalità di ripristino, cambiare la password di un altro account locale e gestire in modo sicuro l'account root bloccato di Ubuntu.

Linux: come elencare tutti gli utenti

Linux: come elencare tutti gli utenti

Scopri come elencare tutti gli utenti su Linux con getent, /etc/passwd, cut e Bash compgen, inclusi gli account locali, di sistema e di directory.

Riparazione di Ubuntu GRUB: Reinstallare GRUB da una chiavetta USB avviabile

Riparazione di Ubuntu GRUB: Reinstallare GRUB da una chiavetta USB avviabile

Riparare GRUB su Ubuntu da una chiavetta USB avviabile: identificare le partizioni root ed EFI corrette, accedere all'installazione tramite chroot, reinstallare GRUB e ricostruire il menu di avvio.

Ubuntu: come elencare i pacchetti installati

Ubuntu: come elencare i pacchetti installati

Scopri come elencare i pacchetti installati su Ubuntu con apt, dpkg-query, Synaptic, Snap e Flatpak, inclusi i comandi manual-package ed export.

Linux: come scaricare un file da un URL tramite terminale

Linux: come scaricare un file da un URL tramite terminale

Scarica un file da un URL nel terminale Linux con wget o curl. Impara le operazioni di base di salvataggio, percorsi personalizzati, reindirizzamenti, URL multipli e comandi di ripresa.

Come utilizzare uno strumento di benchmark per CPU Linux

Come utilizzare uno strumento di benchmark per CPU Linux

Scopri come eseguire il benchmark di una CPU Linux con Geekbench 7, Sysbench e Hardinfo2, oltre alle impostazioni che rendono i confronti prestazionali più affidabili.

Debian: Come installare un file .deb [Guida]

Debian: Come installare un file .deb [Guida]

Scopri come installare un file .deb su Debian con APT, dpkg o GDebi, incluse le correzioni delle dipendenze e i controlli rapidi per la sicurezza e l'architettura del pacchetto.

Come giocare a Monster Hunter: World su Linux con Steam Proton

Come giocare a Monster Hunter: World su Linux con Steam Proton

Scopri come giocare a Monster Hunter: World su Linux con Steam Proton, dall'installazione di Steam e l'attivazione della compatibilità alla scelta di Proton e alla risoluzione dei problemi di avvio.

Come installare WebTorrent su Linux: desktop e riga di comando

Come installare WebTorrent su Linux: desktop e riga di comando

Scopri come installare WebTorrent su Linux utilizzando il pacchetto DEB ufficiale, il pacchetto RPM, il file ZIP portatile o l'interfaccia a riga di comando (CLI) di WebTorrent, attivamente supportata.

Come giocare a World of Warships su Linux con Steam Proton

Come giocare a World of Warships su Linux con Steam Proton

World of Warships non ha un client nativo per Linux, ma è possibile eseguire la versione Steam con Proton. Scopri come installarlo, scegliere Proton e risolvere i problemi di avvio più comuni.