Uno dei motivi per cui alcuni utenti evitano di installare le app Flatpak è che la maggior parte delle app Flatpak non cambia aspetto secondo il tema di sistema corrente. In questo modo le applicazioni sembreranno fuori posto nella tua configurazione altrimenti bella.
Il modo ufficiale per applicare i temi GTK alle app Flatpak è installare il tema desiderato come flatpak. Tuttavia, ci sono solo pochi temi GTK che possono essere installati come Flatpak.
Ciò significa che se hai trovato un bellissimo tema GTK, le tue applicazioni Flatpak continueranno a utilizzare il loro aspetto predefinito. Ma aspetta! C'è una soluzione alternativa.
In questo tutorial, ti presenterò un modo per rendere le app flatpak consapevoli dei temi GTK esterni.
Applicazione di temi GTK alle applicazioni Flatpak (livello intermedio)
Prima di procedere, capiamo perché le app flatpak hanno questo comportamento.
Le app Flatpak vengono eseguite all'interno di un "contenitore", quindi non hanno accesso al filesystem host, alla rete o ai dispositivi fisici senza impostare esplicitamente l'autorizzazione appropriata, ed è quello che faremo.
Come ho detto prima, questa è una soluzione alternativa, non una soluzione impeccabile. Non aspettarti che cambi automaticamente i temi delle app Flatpak quando cambi il tema del sistema. Puoi, tuttavia, cambiarlo per tutte le app Flatpak in un unico comando.
Vediamo come raggiungerlo. Tieni presente che questo tutorial richiede che tu abbia un po' di familiarità con la riga di comando di Linux e che tu possa orientarti nel terminale.
Passaggio 1:consenti alle app Flatpak di accedere alla posizione dei temi GTK
I temi GTK si trovano in /usr/share/themes per tutti gli utenti e in ~/.themes per un utente specifico.
Per concedere l'autorizzazione a tutti i pacchetti flatpak per accedere a ~/.themes esegui il seguente comando:
sudo flatpak override --filesystem=$HOME/.themes
Nota che non puoi dare accesso a /usr/share/themes perché secondo la documentazione di flatpak sono nella lista nera.
In alternativa , puoi farlo anche in base all'applicazione. Devi specificare l'ID dell'applicazione per cui cambierai il tema.
sudo flatpak override org.gnome.Calculator --filesystem=$HOME/.themes
Passaggio 2:indica alle app Flatpak quale tema utilizzare
Dare accesso a ~/.themes non è sufficiente perché questa directory può contenere più temi. Per dire a flatpak quale tema GTK usare, prima ottieni il nome del tema desiderato e poi applica il seguente comando:
sudo flatpak override --env=GTK_THEME=my-theme
Come puoi vedere nello screenshot qui sotto, sono disponibili due temi, Ant-Bloody e Orchis-dark. Copia e incolla il nome esatto del tema nel comando precedente:
In alternativa, per una singola applicazione, eseguire:
sudo flatpak override org.gnome.Calculator --env=GTK_THEME=my-theme
e sostituisci my-themes con il nome della cartella del tema che desideri applicare (e deve trovarsi in ~/.themes).
Fase 3:verifica la modifica del tema eseguendo un'app Flatpak
Se l'applicazione era già in esecuzione, dovrai chiuderla e riavviarla. Vedrai che l'applicazione appena avviata utilizza il tema che avevi specificato in precedenza.
Ecco uno screenshot del calcolatore GNOME e del builder GNOME (versione Flatpak) prima dei passaggi precedenti:
E dopo i passaggi precedenti (con il tema Canta GTK):
È meglio, giusto? Ora, potrei lasciarti qui, ma sarebbe opportuno menzionare i passaggi per ripristinare le modifiche.
Ripristina le modifiche
È possibile ripristinare le modifiche reimpostando tutte le sostituzioni contemporaneamente. Tieni presente che ciò ripristinerà tutte le precedenti sostituzioni che avevi impostato esplicitamente.
sudo flatpak override --reset
In alternativa, puoi anche reimpostare le autorizzazioni a livello di pacchetto:
sudo flatpak override --reset org.example.app
Se in precedenza hai sovrascritto GTK_THEME o il filesystem per un pacchetto Flatpak specifico usando il "override flatpak", il ripristino ti aiuterà a impostarlo di nuovo.
Informazioni aggiuntive
Le normali applicazioni GTK caricano il tema GTK specificato da gsettings, puoi eseguire il comando seguente per ottenere i temi GTK attualmente applicati:
gsettings get org.gnome.desktop.interface gtk-theme
E per impostare il tema GTK, esegui:
gsettings set org.gnome.desktop.interface gtk-theme my-theme
Per fare quanto sopra con Flatpak, devi inserire una sessione di shell all'interno del contenitore dell'applicazione desiderata eseguendo:
flatpak run --command=bash org.gnome.Calculator
E all'interno di questa sessione, esegui il comando precedente:
gsettings set org.gnome.desktop.interface gtk-theme my-theme
Ma con me non ha funzionato, quindi ho utilizzato la variabile di ambiente GTK_THEME, che dovrebbe essere utilizzata per scopi di debug. Se sei riuscito a far funzionare gsettings, dimmelo nei commenti.
So che non è una soluzione automatizzata, ma almeno ti dà la possibilità di cambiare i temi per le applicazioni Flatpak con un paio di comandi. In questo modo, puoi integrare l'applicazione Flatpak con il resto del sistema.
Spero che questo ti abbia aiutato. In caso di problemi, menzionarli nei commenti.
Articolo originale