Se un'applicazione Flatpak si apre con Adwaita mentre il resto di Ubuntu 24.04 utilizza Yaru, i file del tema installati sul desktop potrebbero essere corretti. Flatpak esegue le applicazioni in un ambiente isolato, quindi un programma non legge automaticamente tutti i file del tema dell'host. La soluzione consiste solitamente nell'assicurarsi che il tema selezionato sia disponibile per l'ambiente di runtime di Flatpak e che il servizio delle impostazioni del desktop possa comunicare la scelta attiva.
Questa guida inizia con semplici verifiche e passa poi alla risoluzione mirata dei problemi. Si applica principalmente alle applicazioni GTK 3. Le applicazioni GTK 4 e libadwaita potrebbero seguire regole di stile diverse, quindi un tema che funziona in File o in un'altra applicazione GTK 3 non è garantito che si applichi a tutte le finestre di Flatpak.
Cosa devi sapere prima
Un tema GTK controlla l'aspetto degli elementi dell'interfaccia, come pulsanti e menu, nelle app che utilizzano GTK, un toolkit per la creazione di interfacce grafiche. Un runtime Flatpak fornisce librerie condivise utilizzate da un'app in ambiente sandbox. La sandbox mantiene il filesystem dell'app separato dal sistema host. Di conseguenza, i file del tema host in posizioni come /usr/share/themesnon vengono semplicemente copiati in ogni Flatpak.
L'approccio supportato da Flatpak per i temi GTK 3 è un'estensione con lo stesso nome del tema, solitamente dopo org.gtk.Gtk3theme.ThemeName. Se tale estensione esiste nel repository remoto configurato per il runtime dell'app, Flatpak può installarla insieme all'app o durante un aggiornamento. Il desktop deve inoltre esporre l'impostazione attiva: XSettings viene utilizzato su X11, mentre il portale Impostazioni la fornisce su Wayland. Un portale è un servizio desktop che fornisce alle app in ambiente sandbox un accesso controllato a determinate funzioni e preferenze del desktop.
Il tema Yaru predefinito di Ubuntu è installato sul sistema host, ma questo fatto da solo non dimostra che sia disponibile un'estensione del tema Flatpak corrispondente per ogni applicazione e runtime. La disponibilità può dipendere dal nome del tema, dal repository Flatpak configurato, dal ramo del runtime e dal toolkit. Flatpak documenta Adwaita come soluzione di ripiego quando un tema o un'interfaccia di impostazioni non sono disponibili.
Passaggio 1: Conferma il tema e la sessione dell'host
Innanzitutto, verifica se il tema viene applicato alle normali applicazioni desktop. Apri Impostazioni → Aspetto , prendi nota dello stile selezionato e apri un'applicazione GTK preinstallata. Se anche le applicazioni host presentano un aspetto errato, correggi l'aspetto del desktop prima di modificare le impostazioni di Flatpak.
È possibile controllare il nome del tema GTK dal Terminale con:
gsettings get org.gnome.desktop.interface gtk-theme
Il risultato è un nome tra virgolette, ad esempio 'Yaru'. Registra l'ortografia e l'uso delle maiuscole. Flatpak associa il nome del tema GTK selezionato dall'host a un'estensione; la ricerca di un tema simile ma con un nome diverso potrebbe non risolvere l'incongruenza. Il progetto Yaru di Ubuntu documenta Yaru come la suite di temi GTK predefinita di Ubuntu.
Verifica inoltre se la tua sessione è Wayland o X11. Nella schermata di accesso, seleziona il tuo utente e, se disponibile, utilizza il menu a forma di ingranaggio; il nome della sessione viene solitamente visualizzato lì. Questo è importante perché il percorso delle impostazioni è diverso: Wayland si basa su un portale, mentre X11 utilizza XSettings. La sessione GNOME predefinita di Ubuntu 24.04 utilizza comunemente Wayland, ma gli utenti possono scegliere un'altra sessione.
Passaggio 2: Aggiorna Flatpak e verifica la disponibilità dell'estensione del tema
Esegui un aggiornamento generale di Flatpak in modo che le app installate, i runtime e le estensioni disponibili vengano aggiornati:
flatpak update
Esamina le modifiche proposte prima di confermare. Successivamente, cerca tra i remote configurati le estensioni corrispondenti al nome del tema che hai registrato. Per una selezione Yaru, prova:
flatpak search org.gtk.Gtk3theme.Yaru
Se la ricerca restituisce un'estensione corrispondente, annota l'ID dell'applicazione e il telecomando esatti visualizzati. Installala solo se Flatpak non l'ha già installata. Utilizza l'ID e il telecomando esattamente come visualizzati:
flatpak install REMOTE EXTENSION_ID
Sostituisci entrambi i segnaposto in maiuscolo con i valori effettivi. Non copiare un ID di estensione presunto da un tema o un ramo di runtime non correlato. Alcune build di estensione potrebbero non essere disponibili per un determinato runtime; in tal caso, l'app può continuare a utilizzare Adwaita anche se l'host ha Yaru.
La documentazione di Flatpak sull'integrazione con il desktop afferma che le estensioni del tema GTK corrispondenti vengono installate automaticamente durante l'installazione o l'aggiornamento dell'app, se presenti nel repository remoto. Pertanto, se l'estensione è disponibile ma non presente, potrebbe essere sufficiente aggiornare l'app. I risultati della ricerca possono variare in base ai repository remoti e ai pacchetti, quindi è consigliabile considerare l'output locale di Flatpak come riferimento corrente, anziché presumere il nome del pacchetto.
Passaggio 3: riavvia l'app e aggiorna il servizio delle impostazioni desktop
Chiudi completamente l'applicazione interessata, comprese tutte le istanze in background, quindi riaprila. Un processo in esecuzione potrebbe conservare le impostazioni di aspetto lette all'avvio.
Se utilizzi Wayland e diversi Flatpak GTK continuano a ignorare lo stile selezionato, verifica se il backend del portale GTK è installato:
dpkg -l xdg-desktop-portal xdg-desktop-portal-gtk
Verifica lo stato di installazione nell'elenco dei pacchetti. La documentazione di Flatpak specifica xdg-desktop-portal-gtkche è necessario per i temi e i font GTK. Se non è presente, installa il pacchetto Ubuntu dall'archivio ufficiale:
sudo apt update
sudo apt install xdg-desktop-portal-gtk
Salva prima il lavoro nelle applicazioni aperte. Quindi disconnettiti e accedi di nuovo, in modo da riavviare correttamente la sessione utente e i relativi servizi del portale. Questa è solitamente l'opzione più chiara per un principiante. Gli utenti esperti possono riavviare i propri servizi utente dal Terminale con systemctl --user restart xdg-desktop-portal.service xdg-desktop-portal-gtk.service, ma i nomi dei servizi e il comportamento di attivazione possono variare a seconda dell'installazione. Se il comando segnala che un'unità non è caricata, disconnettiti invece di riavviare ripetutamente i servizi.
Passaggio 4: Verifica se l'applicazione supporta il tema
Riapri lo stesso Flatpak e confronta i suoi pulsanti, menu e contenuto della finestra con un'applicazione GTK installata tramite i pacchetti di Ubuntu. Se solo un Flatpak presenta delle differenze, il problema potrebbe essere specifico del toolkit, del runtime o dell'implementazione di quell'applicazione. Ad esempio, alcune applicazioni GTK 4 utilizzano libadwaita, che segue intenzionalmente le convenzioni di progettazione di GNOME e non supporta temi GTK arbitrari nello stesso modo in cui lo facevano le vecchie applicazioni GTK 3. Anche le estensioni Flatpak per GTK 3 non modificano lo stile di un'applicazione Qt.
Quando un'app utilizza un runtime recente ed è presente un'estensione del tema GTK 3, l'impostazione desktop dovrebbe normalmente essere applicata automaticamente. In caso contrario, verifica il runtime dell'app con:
flatpak info APP_ID
Sostituisci APP_IDcon l'ID effettivo dell'app. L'output ti aiuta a identificare il runtime e il ramo da segnalare se contatti il manutentore dell'app. Non dimostra di per sé se l'applicazione rispetta le preferenze del tema GTK.
Soluzioni comuni da evitare
- Non concedere un accesso esteso al filesystem dell'host come prima soluzione. La documentazione di Flatpak avverte che esporre i file del tema dell'host può indebolire la sandbox e ridurre la portabilità. È preferibile un'estensione del tema mantenuta e un'integrazione desktop funzionante.
- Non dare per scontato che l'installazione di un tema tramite APT lo installi all'interno di ogni Flatpak. APT cambia l'host. Il runtime di Flatpak necessita comunque di un'estensione compatibile o di un percorso di impostazioni supportato.
- Non bisogna confondere la modalità scura con un tema GTK. La preferenza per la combinazione di colori del desktop e un tema GTK completo sono impostazioni correlate ma distinte. L'applicazione e il suo runtime devono supportare la preferenza corrispondente.
- Non ripristinare tutte le impostazioni di GNOME né eliminare le cartelle dei temi. Tali operazioni potrebbero rimuovere preferenze non correlate e non installare l'estensione Flatpak mancante.
- Non utilizzare le sovrascritture delle variabili d'ambiente come soluzione universale. Una sovrascrittura può variare a seconda del toolkit e dell'applicazione e potrebbe nascondere l'effettiva mancanza dell'estensione o il problema del portale.
Verifica il risultato
Dopo aver aggiornato o installato l'estensione corrispondente e riavviato la sessione o l'app, verifica tre cose: l'host segnala ancora il nome del tema GTK previsto; l'estensione del tema pertinente appare nelle applicazioni Flatpak installate; e i controlli GTK dell'app interessata ora seguono l'aspetto previsto. Puoi elencare i Flatpak installati con:
flatpak list --app
Se il tema host è corretto, l'estensione non è disponibile per l'esecuzione dell'app e solo un'applicazione presenta differenze visive, la limitazione potrebbe essere specifica dell'app piuttosto che un tema Ubuntu difettoso. Quando si invia una segnalazione, includere l'ID dell'app Flatpak, il ramo di runtime, il tipo di sessione, il nome del tema e lo stato del pacchetto del portale pertinente. Questo fornisce ai manutentori i dettagli necessari per distinguere un problema di pacchettizzazione da un problema di impostazioni del desktop.
Riferimenti ufficiali