Após 14 meses de desenvolvimento, foi lançado o gerenciador de composição Sway 1.9, construído com o protocolo Wayland e totalmente compatível com o gerenciador de janelas em mosaico i3 e o painel i3bar. O código do projeto é escrito na linguagem C e é distribuído sob a licença MIT. O projeto é destinado ao uso no Linux e FreeBSD.
A compatibilidade com i3 é garantida no nível de comandos, arquivos de configuração e IPC, permitindo o uso do Sway como uma substituição transparente do i3, utilizando Wayland em vez de X11. O Sway permite posicionar janelas na tela de forma lógica, em vez de espacial. As janelas são organizadas em uma grade, otimizando o espaço na tela e permitindo manipulações rápidas apenas com o teclado.
Para construir um ambiente de usuário completo, são oferecidos componentes auxiliares: swayidle (processo em segundo plano com a implementação do protocolo KDE idle), swaylock (protetor de tela), mako (gerenciador de notificações), grim (criação de capturas de tela), slurp (seleção de área na tela), wf-recorder (captura de vídeo), waybar (barra de aplicativos), virtboard (teclado na tela), wl-clipboard (manipulação da área de transferência), wallutils (gerenciamento de papéis de parede).
O Sway está em desenvolvimento como um projeto modular, construído sobre a biblioteca wlroots, que abstrai todos os primitivos básicos para organizar o funcionamento do gerenciador de composição. A wlroots inclui backends para abstrair o acesso à tela, dispositivos de entrada, renderização sem acessar diretamente o OpenGL, interação com KMS/DRM, libinput, Wayland e X11 (com uma camada fornecida para executar aplicativos X11 com base no Xwayland). Além do Sway, a biblioteca wlroots é amplamente utilizada em outros projetos, incluindo Librem5 e Cage. Além de C/C++, foram desenvolvidos bindings para Scheme, Common Lisp, Go, Haskell, OCaml, Python e Rust.
No novo lançamento:
- Novos recursos da biblioteca wlroots 0.17 foram implementados, como suporte aos protocolos Wayland content-type-v1 (manipulação de informações sobre o conteúdo exibido), xwayland-shell-v1 (vinculação da janela X11 à superfície Wayland), wp-fractional-scale-v1 (escala fracionária), security-context-v1 (isolamento em sandbox) e cursor-shape-v1 (configuração da aparência do cursor).
- O suporte ao protocolo 'xdg-activation-v1' foi melhorado, permitindo a transferência de foco entre diferentes superfícies Wayland de primeiro nível (por exemplo, por meio do xdg-activation, um aplicativo pode mudar o foco para outro). A nova versão adicionou suporte ao rastreamento do foco considerando para áreas de trabalho virtuais e configurações de múltiplos monitores.
- O código para renderizar o conteúdo foi transferido para a nova API de renderização fornecida pela biblioteca wlroots, o que resultou em aumento de desempenho.
- Uma configuração para desativar o buffer primário foi adicionada ao arquivo de configuração.
- Novos comandos de controle de dispositivos de entrada foram adicionados, permitindo definir os parâmetros RotationAngle e ScrollButtonLock no libinput para resolver problemas com touchpads e mouses.
- Adicionada a capacidade de usar botões de tablets para redimensionar janelas flutuantes.
- O IPC agora suporta o evento de saída.
- O projeto wmenu foi definido como o menu de aplicativos padrão.
- O suporte ao protocolo idle específico do KDE foi interrompido, sendo substituído pelo protocolo padrão do Wayland idle-notify-v1.


Fonte: opennet.ru
