Foi lançado o novo servidor compositor Niri 25.05, que implementa o método de disposição em mosaico (tiling) inspirado na extensão PaperWM do GNOME, onde as janelas são agrupadas em uma barra rolável infinitamente na tela. Ao abrir uma nova janela, a barra se expande, enquanto as janelas já adicionadas não mudam de tamanho. O projeto é baseado no uso do protocolo Wayland, mas permite a execução de aplicações X11 através do servidor DDX Xwayland. O código do projeto é escrito em Rust e distribuído sob a licença GPLv3. Os pacotes são criados para Fedora, NixOS, Arch Linux e FreeBSD.
A principal diferença do Niri em relação ao PaperWM é a associação de uma fita de janelas exclusiva a cada monitor, não se sobrepondo às fitas de outros monitores (no PaperWM, a operação separada com monitores não pode ser realizada devido à ligação às coordenadas globais de janelas no GNOME Shell). O Niri suporta HiDPI e pode operar em sistemas com várias GPUs (por exemplo, sistemas híbridos com placa gráfica discreta e GPU integrada). Há uma interface embutida para criar capturas de tela e gravar screencasts, cuja característica é a possibilidade de excluir da gravação janelas individuais com informações confidenciais.
As áreas de trabalho virtuais no Niri são criadas dinamicamente e, à semelhança do GNOME, são dispostas verticalmente (a fita de janelas gira horizontalmente e a fita de áreas de trabalho — verticalmente). Em cada monitor, pode ser exibido um conjunto independente. para áreas de trabalho virtuaisPara alternar entre áreas de trabalho e janelas, você pode usar gestos de controle no touchpad. Ao desconectar o monitor, a disposição das áreas de trabalho virtuais é lembrada e transferida para o monitor restante, e quando o monitor é reconectado, retorna ao estado original. A configuração é feita através de um arquivo de configuração que permite modificar parâmetros como largura das bordas, margens, modos de saída e tamanhos das janelas. As alterações feitas no arquivo de configuração são aplicadas automaticamente sem reiniciar o servidor compositor.

Na nova versão:
- Foi adicionado um modo de visão geral para navegação entre áreas de trabalho virtuais e as janelas abertas nelas. Esse modo é ativado movendo o cursor para o canto superior esquerdo ou por um gesto de quatro dedos no touchpad, reduzindo o zoom e mostrando uma barra com as áreas de trabalho virtuais disponíveis e as janelas abertas nelas. As janelas podem ser reagrupadas ou movidas entre as áreas de trabalho usando o mouse ou gestos na tela.

- Ampliadas as funcionalidades para criação de screencasts e compartilhamento de tela. Agora é possível escolher dinamicamente o objeto para gravar o screencast — inicialmente é criado um fluxo de vídeo vazio, que pode ser alternado para capturar a janela ativa ou toda a tela no monitor atual. Foi implementado suporte para gravação da saída de aplicativos em tela cheia na forma de uma janela virtual.
- Na interface para criação de capturas de tela, foi adicionada a opção de selecionar a área da imagem usando uma mesa digitalizadora ou uma tela sensível ao toque. Um botão separado foi adicionado à barra inferior para a criação de capturas de tela.
- Adicionada a capacidade de destacar janelas que precisam de atenção especial. Essas janelas são destacadas com uma borda colorida (a cor é definida pela configuração urgent-color) e possuem um indicador separado na barra.
- Expandidas as capacidades da interface IPC, utilizada para interagir com sistemas externos com o compositor. servidor. Foram adicionados os comandos: "niri msg pick-window" (retorna o identificador da janela na qual o usuário clicou) e "niri msg pick-color" (retorna a cor do pixel selecionado).
- Adicionadas ações para janelas: focus-monitor, move-window-to-monitor, move-column-to-monitor, focus-column, move-column-to-index.
- Adicionadas configurações para dispositivos de entrada: desativação do tap-and-drag, desativação de telas sensíveis ao toque, modificação da tecla modificadora, seleção da orientação do touchpad, ativação do Num Lock na inicialização.
- Aumentada a eficiência da renderização de janelas em texturas intermediárias (offscreening), que devem passar por processamento adicional (por exemplo, sobreposição de camadas) antes de serem exibidas no monitor.
Fonte: opennet.ru

