Após 6 meses de desenvolvimento, é lançado o primeiro pré-lançamento do compositor Xfwl4, que utiliza o protocolo Wayland. O Xfwl4 é escrito na linguagem Rust utilizando a biblioteca Smithay. A razão para a criação deste novo compositor é mencionada como uma tentativa malsucedida de implementar suporte simultâneo para X11 e Wayland na base de código existente do gerenciador de janelas xfwm4, que foi projetado com uma integração estreita do protocolo X11, dificultando a separação da lógica de gerenciamento de janelas da especificidade do X11.
O Xfwl4 se desenvolve do zero e não se cruza com a base de código do gerenciador de janelas xfwm4, mas visa implementar toda a funcionalidade existente no xfwm4, inclusive a possibilidade de usar as configurações existentes do xfconf e a interface de configuração com foco na utilização do Wayland em vez do X11. Planeja-se levar a funcionalidade do Xfwl4 a um nível em que o usuário possa alternar entre o Xfwl4 e o xfwm4 sem perceber diferenças.
Entre as funcionalidades avançadas do Xfwl4, destaca-se a reformulação significativa da lógica de iniciação de sessões, a implementação do protocolo Wayland xdg-session-management e suporte ao lançamento de aplicativos X11 através do XWayland. O código do Xfwl4 é distribuído sob a licença GPLv3 (para comparação, o código do gerenciador de janelas xfwm4 é distribuído sob GPLv2).
O Xfwl4 é construído sobre a biblioteca Smithay, que fornece implementação de quase todas as extensões oficiais do protocolo Wayland, bem como dos protocolos wlroots e KDE. Smithay é utilizado em projetos como Cosmic e Niri. Assim como o wlroots, a biblioteca Smithay oferece abstrações de alto nível, mas também permite intervenções em sistemas de baixo nível e adaptações das técnicas de saída gráfica, trabalho com dispositivos de entrada, comportamento dos protocolos Wayland e manejo de tarefas relacionadas à construção de ambientes de trabalho. A linguagem Rust foi escolhida por dificultar a ocorrência de erros ao lidar com memória e reduzir a probabilidade de problemas que levam a falhas.
O projeto de adição gradual de suporte ao Wayland no xfwm4 foi abandonado devido a receios de redução da estabilidade e surgimento de novos erros durante o refatoramento. Ficou mais simples manter o xfwm4 vinculado ao X11 e desenvolver paralelamente um novo compositor servidor para Wayland. As razões para a criação do novo servidor também é mencionada a impossibilidade de adaptar alguns conceitos de gerenciamento de janelas do X11 para o Wayland e a necessidade de usar a linguagem C e a biblioteca wlroots caso o desenvolvimento do xfwm4 continue, apesar da existência de melhores alternativas.
A primeira versão do Xfwl4 tem um nível de qualidade alfa e não implementa toda a funcionalidade planejada. Entre os recursos ainda indisponíveis na primeira versão de teste estão:
- Diálogo de configuração de mouse e touchpad.
- Diálogo de configuração para áreas de trabalho virtuais.
- Definição de áreas nas bordas da tela nas quais o posicionamento de janelas é excluído.
- Minimização da janela com exibição de ícone e menu que aparece ao clicar com o botão do meio do mouse.
- Exibição de miniaturas com o conteúdo das áreas de trabalho virtuais na barra.
- Atalhos de teclado para alternar entre aplicativos e janelas de aplicativos.
- Restauração da posição anterior das janelas após a reinicialização dos aplicativos.
Fonte: opennet.ru
