sábado, 21 de março de 2026

A combinação de WMs com compositores feitos por fora

O gerenciador de janelas (WM ou Window Manager) é a parte responsável pela estrutura das janelas que vemos no desktop: posicionamento, movimentação, redimensionamento, foco entre janelas, atalhos de teclado e também pelas decorações das janelas (botões, bordas, título etc.). Em outras palavras, o WM monta toda a estrutura visual básica das janelas junto com o tema escolhido (botões, contorno, cores e tudo mais) e é assim que vemos tudo organizado na tela.

Já um compositor é o componente responsável pela "amenização visual" das janelas, aplicando efeitos como transparências, blur, sombras, animações e outros efeitos gráficos.

Uma forma simples de entender o conceito é imaginar o gerenciador de janelas como a estrutura básica da imagem de uma pessoa sem maquiagem, enquanto o compositor seria a mesma imagem depois de receber maquiagem e filtros - tipo aquelas fotos mais "produzidas" que aparecem no Tinder, mais falsas do que nota de 150 pratas, hehehe...

O sistema pode ficar sem compositor, mas não pode ficar sem um gerenciador de janelas. Sem compositor tudo continua funcionando normalmente mas a aparência fica mais simples e sem efeitos visuais.

Com compositor:

Sem compositor:

Para a maioria dos usuários, um desktop Linux minimamente apresentável acaba sendo um fator importante na escolha da distribuição. Muitas vezes a aparência pesa até mais que a própria utilização no primeiro contato, principalmente quando o usuário vem do Windows e quer saber "qual é essa de Linux". Se o sujeito vê uma distribuição com aparência muito crua ou mal configurada, a reação costuma ser rápida: instala, olha… e tchau.

Por isso os ambientes gráficos (Desktop Environments) normalmente já vêm com gerenciadores de janelas que também incluem um compositor integrado. Por exemplo:
  • GNOME usa o Mutter — o compositor pode ser desativado apenas em modo X11.
  • KDE Plasma usa o KWin — o compositor pode ser ativado ou desativado.
  • XFCE usa o Xfwm4 — também possui compositor embutido que pode ser desligado.

Seguindo aquela lógica de jogador de Counter-Strike que gosta de pegar a arma do adversário, também é possível usar compositores externos em vez dos que já vêm integrados nas interfaces gráficas. Um exemplo bastante conhecido é o Picom.

Assim, você pode desativar o compositor nativo do ambiente gráfico e rodar o Picom no lugar. Isso pode ser feito no Plasma, no XFCE ou em ambientes que usam apenas um gerenciador de janelas.

Vale lembrar, porém, que os compositores (e também os gerenciadores de janelas) que vêm integrados a cada ambiente gráfico são desenvolvidos especificamente para funcionar bem naquele ambiente. Usar alternativas externas pode funcionar, mas às vezes o resultado não fica tão integrado ou estável quanto a solução original.

Também é possível usar um gerenciador de janelas no lugar de outro. Isso permite experimentar comportamentos diferentes sem trocar todo o ambiente gráfico.

Por exemplo, no XFCE é possível substituir temporariamente o gerenciador de janelas padrão, que é o Xfwm4.

Para usar o KWin no XFCE:

kwin_x11 --replace

Esse comando encerra o gerenciador de janelas atual e faz o KWin assumir o controle das janelas naquela sessão.

Em ambientes baseados em Wayland a lógica é diferente, e o comando --replace normalmente não se aplica da mesma forma, porque o gerenciador de janelas costuma fazer parte do próprio compositor da sessão.

Esses comandos substituem o gerenciador de janelas apenas temporariamente. Ao reiniciar a sessão ou o computador, o ambiente gráfico volta a iniciar o gerenciador padrão configurado - no caso do XFCE, o Xfwm4 volta a mandar na bagaça.

Também é importante lembrar que gerenciadores de janelas como o KWin ou o Mutter foram desenvolvidos para funcionar principalmente dentro de seus ambientes gráficos originais - respectivamente o KDE Plasma e o GNOME.

Isso significa que substituir o gerenciador de janelas do XFCE por outro não transforma o XFCE em GNOME ou Plasma. Muitas funcionalidades visuais, integrações e comportamentos que vemos nesses ambientes dependem de outros componentes da interface gráfica, extensões e serviços que não estão presentes fora do ambiente para o qual foram projetados.

Em outras palavras: trocar o gerenciador de janelas pode mudar o comportamento das janelas e alguns efeitos visuais, mas não recria toda a experiência do ambiente gráfico original.

Toda experimentação é válida para otimizar ao máximo o uso da máquina com a DE ou WM escolhida, mas não espere estabilidade total com esse tipo de alteração.

Um compositor mais leve (como o Picom) pode ser bastante interessante para manter o básico da composição gráfica em máquinas mais modestas, que podem "achar ruim" rodar o KWin no KDE Plasma ou o Mutter no GNOME, especialmente em sessões X11.

Já substituir o gerenciador de janelas pode ser tentado para testar novos comportamentos ou estilos de gerenciamento das janelas, mas isso também pode introduzir novos problemas, incluindo aumento no consumo de memória, maior uso de recursos gráficos ou até perda de integração com algumas funções do ambiente gráfico.

Em muitos casos essas trocas funcionam bem para testes ou experimentação, mas o gerenciador de janelas original do ambiente gráfico costuma oferecer a melhor integração e estabilidade no uso cotidiano.

O bom e velho Xterm

Em tempos de terminais bonitinhos com múltiplas abas, integrações de ícones e outras coisas, tem um carinha que normalmente é instalado por padrão nas distribuições de Linux mas que fica mais deixado de lado do que manual de instrução de celular: o XTerm.


O Xterm é um terminal simplão, sendo considerado "feio" para os padrões de hoje: fonte quadrada, cara de software abandonado, interface que parece ter sido desenhada quando monitor ainda era quadrado (e foi, hehehe). Se você abrir isso hoje, do lado de um terminal cheio de transparência, blur, sombra e emoji colorido, a comparação fica bem mais evidente. Mas aí entra o detalhe que muita gente odeia admitir: XTerm funciona; sempre.

Enquanto um terminal bombadão instalado e configurado:
  • depende de GPU;
  • depende de Wayland ou mesmo X11 alinhados;
  • depende do compositor não estar de "compositagem";
  • depende de meia dúzia de libs que quebram a cada release;

o XTerm tá lá, firme, olhando pra você dizendo: "Ô môuçu, eu estou aqui!" igual a minha gata pedindo comida.

O XTerm não é pra agradar e sim para funcionar. Terminais modernos têm um problema sério: tentam ser legais demais, muitas vezes por vontade do usuário que procura facilidades de uso que normalmente são dadas por plugins, como transparência, blur, "adivinhar" o que você quer e até reinventar copy/paste. O Xterm não tem nada disso, nem abas, nem interface de configuração. Ele só quer emular um terminal direito, como manda o figurino, o usuário é que muda (ou quer mudar) as coisas.

Selecionou com o mouse? Copiou; botão do meio? Colou; quer diferente? Vai configurar, cumpadi. E é aí que o bagulho complica. Vão dizer que "Mas ninguém usa isso hoje" mas usa sim, a não ser a galera que troca de distro "a cada seis meses". Os terminais são usados por:
  • quem depura software sério;
  • quem mexe com sistemas antigos;
  • quem trabalha remotamente;
  • e, principalmente, quem faz edições de configuração de arquivos manualmente ou uso programas cmd e scripts.

Mas quando algo dá errado em modo texto em um terminal bonitinho, adivinha em qual terminal o cara testa primeiro? Não é no terminal com blur roxo translúcido. É no XTerm porque, se quebra no XTerm, aí sim você tem um problema de verdade.

Configuração: o item que gera a "crise do 'nungostêi' por ser feio"

Aqui mora a metade do ódio. XTerm não tem arquivinho bonito, wizard, menu gráfico, preview ao vivo ou abas, é só a janela do terminal todo preto com letras parecendo bugadas e com a aparência dos jogos da seleção brasileira. Ele usa Xresources, aquela coisa jurássica que faz muita gente chorar no banho.
Mas o detalhe é que os chorões ignoram o nível de controle absurdo que isso proporciona. Você pode configurar praticamente tudo: fonte, cores, cursor, comportamento de seleção, scroll, teclado, mouse, encoding mas tudo já está funcional sem mexer em nada disso. Só não pode reclamar que é difícil e, ao mesmo tempo, querer controle total. Escolha um.

Robustez: quando tudo quebra, o XTerm continua lá

Esse é o ponto que dói. Você muda compositor, driver de vídeo, WM, DE, backend gráfico e de repente o terminal não abre, o texto pisca, o input atrasa, cola errado, trava e já começa "máis qui sistêma pôudre, púrisso êu perefíru Uíndôws". Aí você abre o XTerm e... ele funciona! E isso não é coincidência, é a consequência de querer manter funcionando o que já funciona.

O problema não é o XTerm - é o ego do usuário

Muita gente odeia o XTerm porque ele expõe uma verdade incômoda: você não precisa de 90% das firulas que acha que precisa. O XTerm escancara isso pois não tem abas, ícones, blur ou animação, é mais sem graça do que descobrir que todo mundo ganhou aumento menos você. E mesmo assim, faz o trabalho melhor do que muita coisa "moderna" - como você no exemplo anterior em relação ao aumento. Isso fere o ego de quem confunde produtividade com estética e isso não é só no terminal, também ocorre com distribuições onde o usuário normalmente dá mais valor àquela "distro bunitinha" do que uma funcional. E por conta disso o Xterm só costuma mostrar a sua funcionalidade quando a vaca já foi pro brejo...

Mesmo sendo velho, feio e chato de ser configurado, ainda assim está lá pra te tirar da lama enquanto os outros te deixaram na mão, pra depois ser esquecido de novo quando tudo voltar a funcionar graças a ele. Se você odeia o XTerm, tudo bem, ele está nem aí por você; mas quando seu terminal favorito resolver dar piti numa compilação de 5 horas, ou uma gravação de vídeo via cmd, ou quando o sistema "morrer", adivinha quem ainda vai estar lá, aberto, esperando você digitar?

Pois é...

Aqui então está uma configuração que vai dar uma "upada" na aparência do XTerm sem fazê-lo perder as funcionalidades. Edite o arquivo ~/.Xresources:

nano ~/.Xresources

Cole essas linhas:

Xcursor.theme: WinSur-dark-cursors
Xcursor.size: 16
XTerm*faceName: DejaVu Sans Mono
XTerm*faceSize: 12
XTerm*geometry: 79x21
XTerm*scrollBar: false
XTerm*borderWidth: 0
XTerm*background: #2e3436
XTerm*foreground: #d3d7cf
XTerm*cursorColor: #fce94f
XTerm*cursorTextColor: #2e3436

CTRL+O para salvar e CTRL+X para sair; depois:

xrdb -merge ~/.Xresources

Vá lá no XTerm e ele deverá aparecer como mostrado abaixo.

Acredito que as configurações mostradas devam satisfazer a maioria dos usuários, com uma janela de tamanho adequado, basicamente com tudo que o sistema do usuário já tenha. Até as cores são configuradas para que os comandos usados não fiquem com letras sobrepostas pelo cursor do mouse.
Há outras configurações mas creio que essas já são suficientes para tirar a "cara de véio" para algo mais moderno sem perder a identidade funcional.

O bom e velho XMMS substituído pelo VLC, Audacious e até mesmo o QMMP

Eu estava procurando plugins ao estilo VU Meter que tinha para o XMMS mas não encontrei um equivalente para usar no Audacious ou outro player de áudio para ter aquele efeito de VU mecânico existente até hoje em aparelhos de som, tanto os vintage (anos 80/90) quanto os profissionais. O VU ao qual me refiro é esse aqui:

 O funcionamento é simples, o ponteiro se movimenta na escala mostrada de acordo com o nível de sinal, dando um efeito rítmico que fazia muitas pessoas ficarem paradas na frente do equipamento só "urubuservando" o equipamento.
Claro que hoje em dia há outros tipos de VU, como os de barra de LEDs ou com construções luminosas de leds que fazem até desenhos mas os medidores de ponteiro ainda são um "must" dos saudosistas.

Nesse tipo de pegada tínhamos o XMMS com um plugin chamado VU Meter mas que infelizmente não foi portado para o Audacious e nem pro QMMP e o VLC "finge" que tem um parecido. Mesmo compilando plugins o que temos é:

Audacious

QMMP

VLC

Tudo até legalzinho, o VLC - como falei - "finge" ter um VU do tipo mas nada que chegue perto ao que tínhamos no XMMS:

Aí sim era legal ouvir músicas no PC, bastava deixar o XMMS tocando a playlist e a janela do plugin de VU acima das outras janelas e pronto, temos um monte de gente em cima do PC perguntando "mas que aparelho é esse?", hehehe...

Sei que as coisas precisam de evolução mas é uma pena que projetos interessantes que não possuam qualquer tipo de ajuda - seja financeira ou de colaboradores já que ninguém vive de brisa - somem do mapa e há centenas de outros projetos na mesma situação. Alguns deles, sejam abandonados ou praticamente parados no desenvolvimento ou atualizações:
  • XMMS;
  • Compiz Fusion;
  • Amarok;
  • SystemBack;
  • Remastersys;
  • latte-dock.

e tantos outros que ou realmente sumiram, ou estão presentes em distribuições mais antigas (e que podem ou não funcionar) ou ganharam um "fork", como o XMMS tem o Audacious e o Remastersys/SystemBack tem o Penguins Eggs.

Mas "C'est la vie", saudosismo de tempos mais simples, hehehe...