O servidor composto Niri 25.05 foi lançado, implementando um método de layout em mosaico no estilo da extensão PaperWM do GNOME, no qual as janelas são agrupadas em uma faixa de rolagem infinita na tela. Abrir uma nova janela faz com que a faixa de opções se expanda, enquanto as janelas adicionadas anteriormente não mudam de tamanho. O projeto é baseado no protocolo Wayland, mas permite executar aplicações X11 usando o servidor Xwayland DDX. O código do projeto foi escrito em Rust e é distribuído sob a licença GPLv3. Pacotes são gerados para Fedora, NixOS, Arch Linux e FreeBSD.
A diferença fundamental entre Niri e PaperWM é que cada monitor tem sua própria faixa de janelas que não se cruza com as faixas de outros monitores (no PaperWM, o trabalho separado com monitores não pode ser implementado devido à vinculação às coordenadas globais da janela no GNOME Shell). Niri oferece suporte a HiDPI e pode ser executado em sistemas com várias GPUs (por exemplo, sistemas híbridos com placa gráfica discreta e GPU integrada). Há uma interface integrada para fazer capturas de tela e gravar screencasts, cujo recurso é a capacidade de excluir da gravação janelas individuais com informações confidenciais.
As áreas de trabalho virtuais no Niri são criadas dinamicamente e, de forma semelhante ao GNOME, são organizadas verticalmente (a faixa de opções das janelas gira horizontalmente, enquanto a faixa de opções da área de trabalho gira verticalmente). Cada monitor pode exibir um conjunto independente de áreas de trabalho. desktops virtuaisVocê pode usar gestos no touchpad para alternar entre áreas de trabalho e janelas. Ao desconectar um monitor, o layout da área de trabalho virtual é memorizado e transferido para o monitor restante. Ao reconectar o monitor, ele retorna ao seu estado original. A configuração é feita por meio de um arquivo de configuração, permitindo alterar parâmetros como largura da borda, margens, modos de exibição e tamanhos de janela. As alterações feitas no arquivo de configuração são aplicadas automaticamente, sem a necessidade de reiniciar o servidor composto.

Na nova versão:
- Adicionado modo de visão geral para navegar em áreas de trabalho virtuais e janelas abertas nelas. O modo é ativado movendo o cursor para o canto superior esquerdo ou deslizando quatro dedos no touchpad, após o que a escala diminui e um feed de áreas de trabalho virtuais disponíveis e janelas abertas nelas é exibido. As janelas podem ser reorganizadas ou movidas entre áreas de trabalho usando o mouse ou gestos na tela.

- Capacidades expandidas para criação de screencasts e compartilhamento de tela. Foi adicionada a capacidade de selecionar dinamicamente um objeto para gravar um screencast - inicialmente, um fluxo de vídeo vazio é criado, que pode ser alternado para capturar a janela ativa ou a tela inteira no monitor atual. Implementado suporte para gravação da saída de aplicativos em tela cheia na forma de uma janela virtual.
- A interface para criação de capturas de tela agora inclui a capacidade de selecionar uma área de captura instantânea usando uma mesa digitalizadora ou tela sensível ao toque. Um botão separado para criar uma captura de tela foi adicionado ao painel inferior.
- Adicionada a capacidade de destacar janelas que exigem atenção especial. Essas janelas são destacadas com uma moldura colorida (a cor é definida por meio da configuração urgent-color) e são fornecidas com um indicador separado no painel.
- As capacidades da interface IPC usada para interação entre sistemas externos e o compósito foram ampliadas. servidorComandos adicionados: "niri msg pick-window" (retorna o ID da janela em que o usuário clicou) e "niri msg pick-color" (retorna a cor do pixel selecionado).
- Ações adicionadas com janelas: foco-monitor, mover-janela-para-monitor, mover-coluna-para-monitor, foco-coluna, mover-coluna-para-índice.
- Configurações adicionadas para dispositivos de entrada: desabilitar tocar e arrastar, desabilitar telas sensíveis ao toque, alterar tecla modificadora, selecionar orientação do trackpad, habilitar Num Lock na inicialização.
- Melhoria na eficiência de renderização de janelas em texturas intermediárias (offscreening), que estão sujeitas a processamento adicional (por exemplo, camadas) antes da saída para o monitor.
Fonte: opennet.ru

