Niri: um compositor de Wayland com blocos de rolagem escritos em Rust

Niri

Niri é um compositor de Wayland com blocos roláveis

Foi anunciado recentemente lançamento da primeira versão de «Niri» que está posicionado como um compositor Wayland que oferece uma experiência única ao organizar janelas em ladrilhos móvel. Seu design se concentra em fornecer uma disposição eficiente de janelas e espaços de trabalho em monitores individuais, proporcionando uma experiência fluida e organizada aos usuários.

O projeto é inspirado na extensão GNOME PaperWM e implementa um método lado a lado no qual as janelas são agrupadas em uma faixa que rola indefinidamente na tela. Abrir uma nova janela faz com que a faixa de opções se expanda, enquanto as janelas adicionadas anteriormente nunca mudam de tamanho.

Sobre Niri

O motivo para criar um gerenciador composto separado é a incapacidade de implementar um trabalho separado com monitores no PaperWM devido a peculiaridades do GNOME Shell (ligação às coordenadas globais da janela). Principal A diferença entre Niri e PaperWM é que cada monitor possui sua própria faixa de janela que não se cruzam. Niri suporta HiDPI e pode ser executado em sistemas multi-GPU (por exemplo, sistemas híbridos com placa gráfica discreta e GPU integrada).

Características:

  • Mosaico rolável: As janelas são dispostas em colunas em uma faixa infinita que se estende para a direita. Abrir uma nova janela não altera o tamanho das existentes.
  • Espaços de trabalho dinâmicos: Os espaços de trabalho são organizados verticalmente e dinâmicos, permitindo um gerenciamento eficiente semelhante ao GNOME.
  • Interface de captura de tela integrada- Niri possui uma interface de captura de tela integrada, facilitando a captura de imagens de forma rápida e fácil.
  • Supervisão de screencasting: Através do xdg-desktop-portal-gnome, Niri permite screencasting com facilidade.
  • Gestos do touchpad: gestos do touchpad estão incluídos para alternar entre áreas de trabalho, melhorando a acessibilidade e a experiência do usuário.
  • Layout configurável: os usuários podem personalizar vários aspectos do layout, incluindo espaçamento, bordas, suportes e tamanhos de janela, para atender às suas preferências individuais.
  • Configurações de recarga ao vivo- Niri permite configurações de recarga ao vivo, o que significa que as alterações feitas são aplicadas imediatamente, sem a necessidade de reinicialização.

Niri conta com suporte para gestos de controle no painel de toque para alternar entre áreas de trabalho. Quando o monitor é desligado, o layout da área de trabalho virtual é lembrado e transferido para o monitor restante e, quando o monitor é devolvido, ele é restaurado ao seu estado original.

La A customização do ambiente é obtida por meio de um arquivo de configuração Ele permite ajustar parâmetros básicos como largura do quadro, preenchimento, modos de saída e tamanhos de janela e as alterações feitas nas configurações são aplicadas dinamicamente, sem a necessidade de reiniciar o servidor composto.

À parte das mudanças desde v0.1.0-beta.1, As seguintes correções e melhorias foram implementadas no Niri:

  1. Corrigido o recarregamento ao vivo da configuração no NixOS, permitindo alterações no link simbólico do arquivo de configuração enquanto mantém o mtime constante.
  2. Corrigido a maioria dos casos em que Niri não ligava os monitores após uma alteração no TTY.
  3. Corrigido problema com xdg-desktop-portal-gnome não atualizando a lista de monitores de screencast ao desconectar/reconectar o monitor, devido ao fato de Niri não notificá-lo sobre as alterações.
  4. Corrigidos problemas com janelas grandes com grandes sombras CSD cortadas em capturas de tela e screencasts.
  5. Corrigidas alterações nas configurações de saída que eram ignoradas se feitas em um TTY diferente.
  6. Correção de pop-ups que não aparecem quando um IME está ativo, com uma solução alternativa que desativa a captura de pop-ups quando um IME está ativo.
  7. Desempenho de renderização do cursor ligeiramente melhorado, evitando transferências de CPU->GPU->CPU.
  8. Corrigida a captura de tela da interface do usuário que não aparecia se o cursor ficasse fora de todos os monitores.

Finalmente pare interessados ​​no projeto, Você deve saber que o código do projeto é escrito em Rust e distribuído sob a licença GPLv3. Você pode encontrar instruções de instalação, bem como mais informações sobre como usar o Niri através de atalhos de teclado no link a seguir.