O suporte Wayland chega a um dos produtos jetbrains
Poucos dias atrás, JetBrains revelado por meio de uma postagem no blog que está fazendo as alterações pertinentes para implementar o suporte para o protocolo Wayland em sua plataforma "IntelliJ" e ambientes de desenvolvimento integrados construídos sobre ela.
JetBrains menções em sua publicação que “esta atualização trará uma série de benefícios” e é que dentro das mudanças que se pretende adicionar o suporte do Wayland ao IntelliJ, está a solução de escalonamento fracionário, melhorias de integração com WSLg, entre outras.
Embora o suporte ao Wayland esteja longe de estar completo, os recursos já existentes nos permitem executar alguns aplicativos Java Swing e AWT no Wayland. Nesta postagem do blog, examinaremos mais profundamente esses avanços e exploraremos alguns dos desafios técnicos que essa nova abordagem ao servidor de exibição apresenta.
Além disso, nota-se que O suporte do Wayland trará consigo uma série de mudanças de desenvolvimento, que será relevante para todos os desenvolvedores Java GUI, pois é mencionado que cobrirá a adição do suporte Wayland ao OpenJDK.
É mencionado que uma vez que as alterações preparadas sejam incluídas em uma versão futura do OpenJDK, o Programas Java poderão ser executados diretamente em ambientes baseados em Wayland sem usar a camada XWayland. JetBrainsRuntime 21, um fork do OpenJDK 21 com suporte Wayland integrado usado em produtos JetBrains, já está disponível para teste.
Tornar o Java Wayland nativo é mais fácil de falar do que fazer. Em termos de JDK, isso equivale a criar um novo Toolkit , que é o berço de praticamente tudo relacionado à GUI. Isso inclui gráficos, manipulação do ponteiro do mouse, tradução de teclas digitadas, exibição na tela inicial e fornecimento de métodos de entrada; tudo isso deve ser implementado do zero. Por exemplo, o kit de ferramentas X11 possui cerca de 50.000 linhas de Java e 20.000 linhas de código nativo, das quais apenas uma fração é reutilizável no Wayland.
Do ponto de vista de alto nível, a tarefa é bastante simples: uma API, Wayland, deve ser traduzida para outra, Java, e vice-versa.
Os benefícios do suporte total para Wayland no IDE IntelliJ incluem: resolver problemas de longa data com XWayland relacionados a texto difuso quando o escalonamento fracionário está habilitado, eliminar problemas de segurança inerentes ao X11 (por exemplo, o protocolo X11 fornece acesso a todas as entradas eventos e permite a substituição de pressionamentos de teclas fictícios), integração total com o ambiente WSL (Windows Subsystem for Linux) usando Wayland, a capacidade de obter maior desempenho de renderização e capacidade de resposta da interface do usuário.
O projeto Wakefield está trabalhando para adicionar suporte Wayland ao OpenJDK em conjunto com engenheiros da Oracle e sob os auspícios da comunidade OpenJDK. No atual estágio de desenvolvimento, o conjunto de ferramentas desenvolvido suporta renderização de software, decoração mínima de janelas, redimensionamento, abertura, minimização e movimentação de janelas, abertura em tela cheia, janelas pop-up (usadas em menus), níveis de zoom separados para cada monitor, trabalho em telas HiDPI , navegação via mouse e teclado.
O projeto ainda não saiu da fase de desenvolvimento, mas nota-se que a funcionalidade implementada é suficiente para executar algumas aplicações Java utilizando os frameworks Swing e AWT (Abstract Window Toolkit) no ambiente baseado em Wayland.
O desempenho de renderização do software existente ao usar o Wayland é comparável ao desempenho ao executar a versão X11 do IntelliJ. Das tarefas prioritárias que estão previstas para serem implementadas nos próximos meses, destacam-se: renderização acelerada por hardware com suporte para API gráfica Vulkan; suporte para métodos de entrada, área de transferência e manipulações de arrastar e soltar; a capacidade de exibir um protetor de tela; significa navegar entre janelas usando atalhos de teclado.
Finalmente se você estiver interessado em saber mais sobre isso, você pode verificar os detalhes no link a seguir.