Após três meses de desenvolvimento, foi publicado o lançamento do servidor compositor Niri 26.04, implementando o método de disposição mosaico (tiling) no estilo da extensão GNOME PaperWM, onde as janelas são agrupadas em uma fita infinitamente rolável na tela. Abrir uma nova janela resulta na expansão da fita, enquanto as janelas já adicionadas não alteram seu tamanho. O projeto é baseado na utilização do protocolo Wayland, mas permite executar aplicativos X11 por meio do servidor DDX Xwayland. O código do projeto foi escrito na linguagem Rust e é distribuído sob a licença GPLv3. Os pacotes são gerados 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, podem ser utilizados 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 ao reconectar o monitor, é restaurada ao estado original. A configuração é realizada por meio de um arquivo de configuração, permitindo alterar 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 compositor. servidor.
Na nova versão:
- Adicionada a capacidade de desfoque de fundo em janelas semitransparentes. Aplicativos e componentes do ambiente do usuário podem gerenciar a transparência através do protocolo Wayland ext-background-effect; para programas que não suportam esse protocolo, a transparência pode ser configurada através de vinculação no arquivo de configuração. O suporte embutido para desfoque de fundo está implementado nos shells Dank Material Shell e Noctalia, no lançador Vicinae, nos emuladores de terminal foot, kitty e Ghostty, e nos kits de ferramentas Quickshell e winit. Estão disponíveis dois modos de desfoque de fundo: "xray" (o desfoque é calculado uma vez e, em seguida, uma imagem estática pré-renderizada é utilizada) e "normal" (o desfoque é realizado em tempo real).

- A diretiva do arquivo de configuração "include", utilizada para a substituição de conteúdo de outros arquivos, foi adicionada com a opção "optional=true", permitindo a definição de componentes de configuração opcionais. Se o arquivo a ser conectado estiver ausente, ao ativar a opção "optional=true", em vez de um erro, será emitido um aviso. Dentro da configuração, foi adicionada a possibilidade de usar o caminho "~", associado com o diretório inicial.
- Para simplificar a navegação entre várias janelas, semelhante ao Blender, foi implementada a mudança automática do cursor de um lado da tela para o outro durante a rolagem horizontal do mouse na área de trabalho.
- Na gravação de screencasts, agora é possível transmitir informações sobre o cursor separadas do fluxo de vídeo para o PipeWire, o que, por exemplo, permite que o cursor seja desenhado independentemente no OBS. Foram adicionados comandos na IPC para rastrear gravações de screencasts, parar a gravação e obter eventos sobre o início/término da gravação (para mostrar um indicador na barra).
- Melhorada a animação de rolagem e a expansão/retração de janelas.
- Adicionada a possibilidade de cancelar a operação de drag&drop pressionando a tecla Escape.
- Apoio melhorado para tablets e trackballs.
- Expandidas as capacidades de perfilamento da GPU com o pacote Tracy. Agora é possível rastrear o desempenho da renderização e operações de desfoque. Suporte implementado para sistemas com gráficos híbridos (GPU integrada + placa gráfica dedicada).
- Otimização da renderização realizada. A construção da lista de objetos renderizados na tela foi acelerada em 2-3 vezes em sistemas modernos e até 8 vezes em sistemas antigos.
Fonte: opennet.ru

