Objetivo: Extrair o máximo desempenho do Chromium instalado via Flatpak no ArchLinux, sem depender da conta Google para sincronização.
Farei um post por etapa, com explicações, exemplos, prints e benchmarks.
Conto com a ajuda da comunidade para tornar o Chromium fluido, leve e bem otimizado.
Resolvi iniciar esse guia aqui no fórum e irei editá-lo com o desenvolvimento de cada parte. Abaixo está o roteiro atual do desafio — que pode (e deve!) ser aprimorado conforme as experiências forem evoluindo:
Estou usando um laptop Acer com as seguintes especificações:
https://termbin.com/75h81
Para gerar esse relatório, usei o
inxi
com envio para otermbin
.
Mas sei que existem ferramentas ainda melhores, como soluções que geram relatórios em HTML acessíveis por link único.
Se alguém conhecer e puder compartilhar, a ajuda já começa por aqui!
ETAPA 1 – OTIMIZAÇÃO DE PERFORMANCE
1. Introdução e Premissas
-
Por que Flatpak?
Escolhi o Chromium via Flatpak porque ele oferece sandboxing nativo, atualizações rápidas diretamente do upstream e uma boa base para testar ajustes finos de desempenho. Apesar de ter fama de ser mais pesado, o Flatpak permite isolar bem o navegador do sistema e, com as configurações certas, é possível torná-lo tão leve quanto uma instalação nativa. Além disso, por ser padronizado entre distribuições, facilita a reprodução do experimento por outros usuários fora do Arch. -
Por que não o Chrome?
Não escolhi o Chrome porque ele é um software proprietário, com várias limitações de personalização e dependente da conta Google para liberar recursos como sincronização. Além disso, não permite o mesmo nível de controle e otimização que o Chromium, especialmente via Flatpak, onde o foco é performance e liberdade. O objetivo aqui é explorar ao máximo um navegador livre e ajustável, sem abrir mão da privacidade e da leveza. -
Arch Linux e leveza como filosofia.
No Arch Linux, a leveza não é apenas uma característica técnica — é uma filosofia. O sistema segue o princípio KISS (Keep It Simple, Stupid), permitindo que só o essencial seja instalado, o que garante um ambiente enxuto, rápido e sob total controle do usuário. Como parte dessa proposta, escolher, entender e ajustar cada componente faz parte da trilha natural de quem usa Arch. Mesmo que no começo dê mais trabalho, esse esforço se transforma em domínio. Ao invés de aceitar configurações prontas, passo a fazer escolhas conscientes, sabendo o porquê de cada detalhe. E é justamente esse entendimento que torna o sistema mais eficiente e verdadeiramente meu. O Flatpak não mexe no meu SO, mas nada impede que eu mexa no app individualmente. Creio que muitos devam gostar desse tipo de abordagem por debaixo do capô.
2. Instalando o Chromium via Flatpak
- Comando de instalação
Primeiro ajustar o Arch para receber os essenciais para o nosso trabalho
sudo pacman -S --needed --noconfirm flatpak gnu-netcat inxi curl fastfetch
Uma forma mais elegante de instalar os flatpaks necessários,
flatpak list | grep -q org.chromium.Chromium || flatpak install -y flathub org.chromium.Chromium
flatpak list | grep -q com.github.tchx84.Flatseal || flatpak install -y flathub com.github.tchx84.Flatseal
- Por que escolher o repositório Flathub
Escolhi o repositório Flathub porque ele é o principal e mais confiável repositório de Flatpaks mantido pela comunidade, com suporte direto dos desenvolvedores dos aplicativos. Ele oferece atualizações rápidas, ampla compatibilidade e uma base sólida para quem quer estabilidade, segurança e acesso às versões mais recentes dos programas, sem depender do sistema-base. Se você não sabe do que estou falando, veremos as outras opções em temas de estudos.
3. Limpando Permissões com Flatseal
-
O que é Flatseal
O Flatseal é um gerenciador gráfico de permissões para aplicativos instalados via Flatpak. Com ele, é possível visualizar e ajustar facilmente quais recursos do sistema cada app pode acessar — como arquivos, rede, dispositivos USB, GPU, etc. Ele simplifica o controle de sandboxing do Flatpak, permitindo personalizar a segurança e o desempenho de cada app de forma intuitiva, sem precisar editar configurações manualmente no terminal. -
Permissões recomendadas para desempenho e segurança
# Permitir acesso apenas à pasta Downloads
flatpak override --user --filesystem=xdg-download org.chromium.Chromium
# Mais uma opção de ícone para algumas distros
flatpak override --user --filesystem=~/.local/share/applications --filesystem=~/.local/share/icons org.chromium.Chromium
# Ativar suporte à GPU (VAAPI/WebGL)
flatpak override --user --device=dri org.chromium.Chromium
# Manter acesso à rede
flatpak override --user --share=network org.chromium.Chromium
# Habilitar comunicação com portais do sistema (desktop, input, etc.)
flatpak override --user \
--talk-name=org.freedesktop.portal.Fcitx \
--talk-name=org.freedesktop.portal.Flatpak \
--talk-name=org.freedesktop.portal.Desktop \
org.chromium.Chromium
# Revogar acesso amplo à /home (se tiver sido concedido)
flatpak override --user --nofilesystem=home org.chromium.Chromium
# Revogar acesso a dispositivos diretos (USB, webcam, etc.)
flatpak override --user --nodevice=all org.chromium.Chromium
A tela ficará mais ou menos como essa, tive que dividir os prints devido ser uma tela com scroll grande.
4. Flags Essenciais de Performance
- Quais são:
--enable-features=VaapiVideoDecoder \
--ignore-gpu-blocklist \
--enable-gpu-rasterization \
--enable-zero-copy \
--process-per-site \
--disable-background-timer-throttling \
--disable-notifications \
--disk-cache-size=104857600 \
--no-pings
- O que cada uma faz
Flag | O que faz |
---|---|
--enable-features=VaapiVideoDecoder |
Ativa decodificação de vídeo por hardware (VAAPI) |
--ignore-gpu-blocklist |
Força uso da GPU mesmo se ela estiver em lista negra |
--enable-gpu-rasterization |
Usa a GPU para renderizar imagens e elementos gráficos |
--enable-zero-copy |
Otimiza uso de memória com buffers diretos na GPU |
--process-per-site |
Reduz o uso de RAM criando um processo por domínio, não por aba |
--disable-background-timer-throttling |
Mantém desempenho estável em abas em segundo plano |
--disable-notifications |
Desativa notificações de sites (economiza recursos) |
--disk-cache-size=104857600 |
Limita cache em disco para 100 MB (ajuda em SSDs e navegadores Flatpak) |
--no-pings |
Desativa envio de pings ao clicar em links (menor tráfego e rastreio) |
- Como aplicar no Flatpak
cp /var/lib/flatpak/exports/share/applications/org.chromium.Chromium.desktop ~/.local/share/applications/org.chromium.Chromium-optimized.desktop
sed -i 's|^Exec=.*|Exec=flatpak run org.chromium.Chromium --enable-features=VaapiVideoDecoder --ignore-gpu-blocklist --enable-gpu-rasterization --enable-zero-copy --process-per-site --disable-background-timer-throttling --disable-notifications --disk-cache-size=104857600 --no-pings|' ~/.local/share/applications/org.chromium.Chromium-optimized.desktop
sed -i 's|^Name=.*|Name=Chromium (Otimizado)|' ~/.local/share/applications/org.chromium.Chromium-optimized.desktop
update-desktop-database ~/.local/share/applications
5. Redução de Processos em Segundo Plano
- Desativar notificações
Acesse: chrome://settings/content/notifications
Desmarque “Os sites podem pedir para enviar notificações”
Remova permissões concedidas que você não precisa mais
- Desativar extensões pesadas
Acesse: chrome://extensions
Revise as extensões ativas
Desative “Permitir em modo anônimo” em cada uma (se não usar)
Remova extensões que rodam em segundo plano e você não usa sempre
- Gerenciamento de abas e pré-carregamento
Acesse:
[chrome://settings/performance](chrome://settings/performance)
Role até a seção Velocidade
Desative a chave ao lado de “Páginas pré-carregadas”
PARTE 2 – SINCRONIZAÇÃO SEM GOOGLE
6. Por que evitar a conta Google?
Evitar a conta Google nesse processo é uma escolha consciente de liberdade. Ao não depender da sincronização oficial do Chrome, preservo minha privacidade e mantenho o controle dos meus dados. Além disso, essa é uma oportunidade de explorar alternativas open source que não exigem login, não rastreiam meu uso e ainda oferecem soluções eficientes para sincronização de favoritos, senhas e histórico, como veremos nas próximas etapas.
[AINDA CONTINUA]