Após oito meses de desenvolvimento, foi lançado um release estável do protocolo, do mecanismo de interação entre processos e das bibliotecas Wayland 1.25. A ramificação 1.25 é retrocompatível no nível de API e ABI com as versões 1.x e inclui principalmente correções de bugs e pequenas atualizações do protocolo. Os desenvolvimentos do projeto são distribuídos sob a licença MIT. O servidor compositor de referência Weston, que fornece código e exemplos práticos para o uso do Wayland em ambientes de desktop e em soluções incorporadas, está em desenvolvimento dentro de um ciclo separado.
Mudanças principais no protocolo:
- A documentação foi convertida do formato DocBook para mdBook (Markdown).
- O dialecto Wayland XML, o modelo de atualização de conteúdo e as funcionalidades de gerenciamento de cores estão totalmente documentados.
- Adicionado um novo atributo "frozen" para interfaces com múltiplas interfaces pai.
- Adicionada uma nova solicitação wl_surface.get_release para obter notificação sobre a liberação do buffer anexado pelo cliente via wl_surface.attach. Ao contrário de wl_buffer.release, na wl_surface.get_release, a notificação está ligada a um momento específico de renderização.
- Adicionada a função wl_display_dispatch_pending_single(), que permite retirar da fila de eventos e processar apenas um evento, ao invés de todos os eventos acumulados, como faz o wl_display_dispatch_pending().
- Disponibilizado o color coding na saída de depuração WAYLAND_DEBUG.
Extensões de protocolo adicionadas desde o lançamento do Wayland 1.25, que complementam o protocolo-base e são fornecidas em um conjunto separado Wayland-Protocols:
- xx-input-method — permite que aplicativos implementem métodos de entrada de texto para compositores. servidores e formem o texto inserido, o que pode ser aplicado, por exemplo, para criação de teclados virtuais e camadas IME (Editor de Métodos de Entrada) para o processamento de entradas.
- xx-text-input — permite que servidores compostos implementem métodos de entrada e enviem texto para aplicativos. O protocolo padroniza a interação entre o composto servidor e os aplicativos, permitindo gerenciar funcionalidades como a transmissão de texto inserido, tratamento de eventos de mudança de foco de entrada e consideração das especificidades dos campos de entrada (idioma, seleção de texto, tipo de conteúdo).
- Os protocolos color-management-v1 e color-representation-v1 foram aprimorados, oferecendo recursos para gerenciamento de cor, suporte a HDR e definição da representação de cor da superfície Wayland.
Os eventos mais notáveis relacionados ao Wayland que ocorreram desde a publicação do último release:
- O GNOME 50 removeu o suporte para X11. No KDE Plasma 6.8, foi decidido descontinuar o suporte para X11.
- A JetBrains está migrando o IDE IntelliJ para usar Wayland por padrão.
- O Xfce anunciou o servidor compositor Xfwl4, que utiliza Wayland.
- O ambiente de desktop Budgie 10.10 foi migrado para Wayland.
- QNX Developer Desktop baseado em Wayland.
- Marathon OS — um sistema operacional móvel baseado em Wayland.
- Lançamento do Wayback, uma camada para executar desktops X11 usando componentes Wayland.
- No Cinnamon, adicionada a opção de instalar arquivos de sessão para Wayland e implementada a capacidade de trocar o layout do teclado ao usar Wayland.
- No driver wine, ao trabalhar em ambientes baseados em Wayland, foi implementado suporte para área de transferência, métodos de entrada, janelas não retangulares e transparência.
- O Cairo-Dock agora suporta Wayland.
- Atualização dos servidores compostos: Weston 15.0, River 0.4.0, Hyprland 0.54, labwc 0.9.4, Niri 25.11, miracle-wm 0.8, Wayfire 0.10, wlmaker 0.6, labwc 0.9.0.
Lembramos que Wayland é um protocolo de interação entre compositor servidor e aplicativos que trabalham com ele. Os clientes cuidam da renderização de suas janelas em um buffer separado, enviando informações sobre as atualizações para o compositor. servidor, que combina o conteúdo dos buffers de aplicativos individuais para formar a saída final, levando em conta nuances como sobreposição de janelas e transparência. Em outras palavras, o servidor compositor não fornece uma API para renderizar elementos individuais, mas opera apenas com janelas já formadas, o que elimina a necessidade de dupla bufferização ao usar bibliotecas de alto nível, como GTK e Qt, que lidam com a composição do conteúdo das janelas.
Wayland resolve muitos problemas de segurança do X11, pois, ao contrário deste, isola a entrada e saída para cada janela, não permite que um cliente acesse o conteúdo de janelas de outros clientes e também impede a interceptação de eventos de entrada relacionados a outras janelas. O suporte para operação direta com Wayland foi implementado para a maioria das bibliotecas gráficas utilizadas no Linux, incluindo GTK, Qt, SDL, FLTK, wxWidgets, Clutter e EFL (Enlightenment Foundation Library).
A interação com o hardware em Wayland/Weston, como inicialização, troca de modos de vídeo (drm modesetting) e gerenciamento de memória (GEM para i915 e TTM para radeon e nouveau) das placas gráficas, pode ser feita diretamente através de um módulo que opera no nível do kernel, permitindo evitar a necessidade de privilégios de superusuário. Para garantir a execução de aplicativos X11 comuns em um ambiente baseado em Wayland, é utilizado o componente DDX XWayland (X Dependente de Dispositivo), semelhante em estrutura ao Xwin e Xquartz para plataformas Win32 e macOS.


Fonte: opennet.ru
