Se um aplicativo Flatpak abrir com o tema Adwaita enquanto o restante do Ubuntu 24.04 usa o Yaru, os arquivos de tema instalados na sua área de trabalho podem estar corretos. O Flatpak executa aplicativos em um ambiente isolado (sandbox), portanto, um programa não lê automaticamente todos os arquivos de tema do sistema hospedeiro. A solução geralmente consiste em garantir que o tema selecionado esteja disponível para o ambiente de execução do Flatpak e que o serviço de configurações da área de trabalho possa comunicar a opção ativa.
Este guia começa com verificações simples e avança para a resolução de problemas específicos. Ele se aplica principalmente a aplicativos GTK 3. Aplicativos GTK 4 e libadwaita podem seguir regras de estilo diferentes, portanto, um tema que funciona no app Arquivos ou em outro aplicativo GTK 3 não tem garantia de funcionar em todas as janelas do Flatpak.
O que você precisa saber primeiro
Um tema GTK controla a aparência de elementos da interface, como botões e menus, em aplicativos que usam GTK, um conjunto de ferramentas para a criação de interfaces gráficas. Um ambiente de execução Flatpak fornece bibliotecas compartilhadas usadas por um aplicativo em sandbox. O sandbox mantém o sistema de arquivos do aplicativo separado do sistema hospedeiro. Como resultado, os arquivos de tema do hospedeiro em locais como `/etc/gtk` /usr/share/themesnão são simplesmente copiados para todos os pacotes Flatpak.
A abordagem suportada pelo Flatpak para temas GTK 3 é uma extensão com o nome do tema, geralmente seguindo o org.gtk.Gtk3theme.ThemeNamepadrão `.tk`. Se essa extensão existir no ambiente remoto configurado para o runtime do aplicativo, o Flatpak poderá instalá-la juntamente com o aplicativo ou durante uma atualização. A área de trabalho também deve expor a configuração ativa: o XSettings é usado no X11, enquanto o portal de Configurações a fornece no Wayland. Um portal é um serviço de área de trabalho que concede aos aplicativos em sandbox acesso controlado a funções e preferências selecionadas da área de trabalho.
O tema Yaru padrão do Ubuntu está instalado no host, mas esse fato por si só não comprova que uma extensão de tema Flatpak correspondente esteja disponível para todos os aplicativos e ambientes de execução. A disponibilidade pode depender do nome do tema, do repositório remoto Flatpak configurado, da ramificação do ambiente de execução e do toolkit. O Flatpak documenta o Adwaita como alternativa quando um tema ou interface de configurações não estiver disponível.
Passo 1: Confirme o tema e a sessão do anfitrião.
Primeiro, verifique se o tema está sendo aplicado aos aplicativos de desktop comuns. Abra Configurações → Aparência , observe o estilo selecionado e abra um aplicativo GTK pré-instalado. Se os aplicativos host também estiverem com a aparência incorreta, corrija a aparência da área de trabalho antes de alterar as configurações do Flatpak.
Você pode inspecionar o nome do tema GTK no Terminal com o seguinte comando:
gsettings get org.gnome.desktop.interface gtk-theme
O resultado é um nome entre aspas, por exemplo 'Yaru'. Anote a grafia e o uso de maiúsculas e minúsculas. O Flatpak associa o nome do tema GTK selecionado pelo host a uma extensão; buscar por um tema similar, mas com nome diferente, pode não resolver a incompatibilidade. O projeto Yaru do Ubuntu documenta o Yaru como o conjunto de temas GTK padrão do Ubuntu.
Identifique também se sua sessão é Wayland ou X11. Na tela de login, selecione seu usuário e use o menu de engrenagem, se disponível; o nome da sessão geralmente é exibido ali. Isso é importante porque o caminho das configurações é diferente: o Wayland depende de um portal, enquanto o X11 usa o XSettings. A sessão GNOME padrão do Ubuntu 24.04 geralmente usa Wayland, mas os usuários podem escolher outra sessão.
Passo 2: Atualize o Flatpak e verifique a disponibilidade da extensão do tema.
Execute uma atualização geral do Flatpak para que os aplicativos instalados, os tempos de execução e as extensões disponíveis sejam atualizados:
flatpak update
Analise as alterações propostas antes de confirmar. Em seguida, procure nos repositórios remotos configurados por extensões que correspondam ao nome do tema que você registrou. Para uma seleção do Yaru, tente:
flatpak search org.gtk.Gtk3theme.Yaru
Se a pesquisa retornar uma extensão correspondente, anote o ID do aplicativo e o endereço remoto exibidos. Instale-a somente se o Flatpak ainda não a tiver instalado. Use o ID e o endereço remoto exatamente como são exibidos:
flatpak install REMOTE EXTENSION_ID
Substitua os marcadores em maiúsculas pelos valores reais. Não copie um ID de extensão presumido de um tema ou branch de runtime não relacionado. Algumas versões de extensão podem não estar disponíveis para um determinado runtime; nesse caso, o aplicativo pode continuar usando o Adwaita mesmo que o host tenha o Yaru.
A documentação de integração com a área de trabalho do Flatpak afirma que as extensões de tema GTK correspondentes são instaladas automaticamente durante a instalação ou atualização do aplicativo, quando presentes no repositório remoto. Portanto, se a extensão estiver disponível, mas ausente, atualizar o aplicativo pode ser suficiente. Os resultados da pesquisa podem variar conforme os repositórios remotos e os pacotes mudam, então considere a saída do Flatpak local como a verificação atual, em vez de presumir o nome do pacote.
Passo 3: Reinicie o aplicativo e atualize o serviço de configurações da área de trabalho.
Feche completamente o aplicativo afetado, incluindo qualquer instância em segundo plano, e abra-o novamente. Um processo em execução pode reter as configurações de aparência lidas na inicialização.
Se você usa Wayland e vários Flatpaks do GTK ainda ignoram o estilo selecionado, verifique se o backend do portal GTK está instalado:
dpkg -l xdg-desktop-portal xdg-desktop-portal-gtk
Verifique o status de instalação na lista de pacotes. A documentação do Flatpak identifica especificamente o pacote xdg-desktop-portal-gtkcomo necessário para temas e fontes GTK. Se ele estiver faltando, instale o pacote do Ubuntu a partir do repositório oficial:
sudo apt update
sudo apt install xdg-desktop-portal-gtk
Primeiro, salve o trabalho em aplicativos abertos. Em seguida, faça logout e login novamente, o que reinicia corretamente a sessão do usuário e seus serviços de portal. Essa geralmente é a opção mais clara para iniciantes. Usuários avançados podem reiniciar seus serviços de usuário pelo Terminal com o comando `sudo` systemctl --user restart xdg-desktop-portal.service xdg-desktop-portal-gtk.service, mas os nomes dos serviços e o comportamento de ativação podem variar de acordo com a instalação. Se esse comando informar que uma unidade não está carregada, faça logout em vez de reiniciar os serviços repetidamente.
Passo 4: Verifique se o aplicativo é compatível com o tema.
Reabra o mesmo Flatpak e compare seus botões, menus e conteúdo da janela com um aplicativo GTK instalado a partir dos pacotes do Ubuntu. Se apenas um Flatpak apresentar diferenças, o problema pode ser específico do conjunto de ferramentas, do ambiente de execução ou da implementação desse aplicativo. Por exemplo, alguns aplicativos GTK 4 usam a libadwaita, que segue intencionalmente as convenções de design do GNOME e não oferece suporte a temas GTK arbitrários da mesma forma que os aplicativos GTK 3 mais antigos. As extensões Flatpak para GTK 3 também não reestilizam um aplicativo Qt.
Quando um aplicativo usa um ambiente de execução recente e uma extensão de tema GTK 3 está presente, a configuração de área de trabalho normalmente deve ser aplicada automaticamente. Caso contrário, verifique o ambiente de execução do aplicativo com:
flatpak info APP_ID
Substitua APP_IDpelo ID real do aplicativo. A saída ajuda a identificar o ambiente de execução e a ramificação a serem relatados caso você entre em contato com o mantenedor do aplicativo. Ela, por si só, não comprova se o aplicativo respeita as preferências do tema GTK.
Correções comuns a evitar
- Não conceda acesso irrestrito ao sistema de arquivos do host como primeira solução. A documentação do Flatpak observa que expor os arquivos de tema do host pode enfraquecer o sandbox e reduzir a portabilidade. Prefira uma extensão de tema com suporte e integração funcional com a área de trabalho.
- Não presuma que instalar um tema com o APT o instala em todos os pacotes Flatpak. O APT altera o host. O ambiente de execução do Flatpak ainda precisa de uma extensão compatível ou de um caminho de configurações suportado.
- Não confunda o modo escuro com um tema GTK. A preferência de esquema de cores da área de trabalho e um tema GTK completo são configurações relacionadas, mas distintas. O aplicativo e seu ambiente de execução devem ser compatíveis com a preferência relevante.
- Não redefina todas as configurações do GNOME nem exclua as pastas de temas. Essas ações podem remover preferências irrelevantes e não adicionam uma extensão Flatpak ausente.
- Não utilize a substituição de variáveis de ambiente como solução universal. Uma substituição pode variar de acordo com o conjunto de ferramentas e o aplicativo, e pode ocultar o problema real da extensão ausente ou do portal.
Verifique o resultado
Após atualizar ou instalar a extensão correspondente e reiniciar a sessão ou o aplicativo, confirme três coisas: o host ainda reporta o nome do tema GTK esperado; a extensão de tema relevante aparece nos aplicativos instalados do Flatpak; e os controles GTK do aplicativo afetado agora seguem a aparência esperada. Você pode listar os Flatpaks instalados com:
flatpak list --app
Se o tema do host estiver correto, a extensão não estiver disponível para o ambiente de execução do aplicativo e apenas um aplicativo permanecer visualmente diferente, a limitação pode ser específica do aplicativo, e não um problema com o tema do Ubuntu. Ao relatar o problema, inclua o ID do aplicativo Flatpak, a branch de execução, o tipo de sessão, o nome do tema e o status relevante do pacote no portal. Isso fornece aos mantenedores os detalhes necessários para distinguir uma falha de empacotamento de um problema nas configurações da área de trabalho.
Referências oficiais