Wayland Protocols (xx-zones) lançado: Veja as novidades e correções

Wayland xx-zones: Colocando cada janela em seu devido lugar!

Escrito por
Emanuel Negromonte
Emanuel Negromonte é Jornalista, Mestre em Tecnologia da Informação e atualmente cursa a segunda graduação em Engenharia de Software. Com 14 anos de experiência escrevendo sobre...
  • Protocolo xx-zones Lançado: A atualização crítica do Wayland introduz o conceito de "zonas" para resolver, via geometria local, o antigo problema de posicionamento de janelas flutuantes e pop-ups.
  • Espaço de Coordenadas Próprio: O novo padrão permite que aplicativos criem zonas isoladas com coordenadas relativas, garantindo que janelas secundárias abram exatamente na posição espacial definida pelo software, e não aleatoriamente.
  • Ancoragem para Apps Complexos: Solução definitiva para softwares de múltiplas janelas (como GIMP ou CAD) no Linux, permitindo ancorar ferramentas à janela principal sem violar a segurança do compositor.
  • Cálculo de Bordas (Decorations): A API inclui suporte para leitura de server-side decorations, permitindo que o cliente calcule a geometria exata (pixel-perfect) considerando as bordas desenhadas pelo sistema.
  • Status Experimental: Embora funcional, o protocolo chega como experimental, iniciando agora a fase de implementação nos principais compositores (KWin, Mutter) para padronizar o layout de desktop futuro.

O Wayland Protocols é o conjunto de regras oficiais que define como os aplicativos conversam com o compositor (o “gerente” da sua tela, como GNOME Shell ou KWin). Ao contrário do antigo X11, o Wayland é restritivo por padrão: um aplicativo não sabe onde os outros estão na tela por motivos de segurança.

A novidade crítica aqui é o protocolo xx-zones. Ele resolve uma das maiores dores de cabeça da migração para o Wayland: aplicativos com múltiplas janelas (como GIMP, IDEs ou softwares financeiros). Até agora, posicionar janelas flutuantes (paletas de ferramentas) ao lado de uma janela principal era um pesadelo técnico, pois o app não tinha permissão para dizer “coloque esta janela na coordenada X,Y”. O xx-zones cria um meio-termo seguro para isso.

Principais novidades

Esta atualização introduz o protocolo experimental xx-zones-v1. Veja o que ele permite:

  • Ambientes isolados (Zonas): O protocolo permite que um aplicativo crie uma “zona” — um espaço de coordenadas privado. Dentro dessa zona, o aplicativo pode organizar suas próprias janelas livremente, como se fosse um mini-desktop.
  • Posicionamento relativo: O aplicativo pode solicitar que janelas secundárias (como uma barra de ferramentas do Photoshop/GIMP) sejam colocadas em posições específicas dentro dessa zona, garantindo que elas abram onde o usuário espera, e não aleatoriamente na tela.
  • Controle do Compositor: O sistema (compositor) ainda manda. Ele pode redimensionar essa zona ou “ejetar” janelas dela se necessário, mantendo a segurança e o controle do usuário final.
  • Decorations Aware: O protocolo permite que o aplicativo consulte o tamanho das bordas da janela desenhadas pelo servidor, para calcular o posicionamento com precisão de pixel.

Impacto e repercussão

  • O fim da “bagunça” das janelas flutuantes: A comunidade (Reddit e Phoronix) recebeu isso como um marco histórico. Usuários de softwares profissionais (CAD, edição de imagem) no Linux frequentemente reclamam que, no Wayland, as janelas de ferramentas abrem em lugares aleatórios ou em monitores errados. Este protocolo é a peça fundamental para corrigir isso.
  • Drama e Aprovação: A aprovação deste protocolo foi uma saga de mais de 2 anos com mais de 600 comentários técnicos. Liderado por Matthias Klumpp, ele enfrentou resistência inicial de desenvolvedores que temiam que isso trouxesse os “vícios” do X11 de volta. A fusão (merge) dele agora sinaliza um consenso pragmático: o Wayland precisa suportar softwares complexos para substituir o X11 totalmente.
  • Status “Experimental”: O prefixo xx- indica que é experimental. Isso significa que a API pode mudar antes de se tornar estável, mas já permite que desenvolvedores de ambientes gráficos (KDE, GNOME) e toolkits (Qt, GTK) comecem a implementar o suporte.

Resumo técnico

  • Protocolo: experimental/xx-zones/xx-zones-v1.xml adicionado.
  • Conceito de Zona: Define um sistema de coordenadas local por cliente, atrelado a uma saída (output).
  • Gerenciamento: Clientes podem adicionar toplevels (janelas principais) a uma zona.
  • Geometria: Suporte a requisição de server-side frame extents para cálculo preciso de layout relativo.
  • Abstração: Coordenadas são independentes de resolução, e zonas podem ser retângulos fixos ou espaços infinitos, dependendo da implementação do compositor.

Disponibilidade

O protocolo foi mergeado no repositório oficial wayland-protocols.

  • Para usuários: Você não verá mudanças imediatas apenas atualizando este pacote.
  • O que precisa acontecer: Os compositores (KWin, Mutter, Sway) e toolkits (GTK, Qt) precisam implementar suporte a este protocolo. Dada a complexidade, espere ver isso funcionando “na prática” em versões futuras de ambientes desktop (provavelmente final de 2026 em diante para suporte estável).

Próximo passo: Se você é desenvolvedor de compositor Wayland, a especificação XML já está disponível para testes de implementação no branch principal.

Compartilhe este artigo