
Para os utilizadores do ambiente de trabalho KDE Plasma que procuram uma solução nativa para gerir máquinas virtuais, o projeto Karton tem sido uma luz ao fundo do túnel. Esta ferramenta, desenvolvida no âmbito do Google Summer of Code, promete substituir aplicações como o virt-manager e o GNOME Boxes. Novas atualizações revelam que o projeto está a evoluir a um bom ritmo, aproximando-se de um possível lançamento estável.
Os mais recentes avanços do projeto
Uma das atualizações mais significativas é a integração do instalador de máquinas virtuais diretamente no ramo principal do Karton. Esta alteração elimina por completo a dependência da ferramenta virt-install. Em sua vez, o Karton utiliza agora a biblioteca libosinfo para identificar o sistema operativo a partir de uma imagem de disco e gera autonomamente a configuração XML necessária para o libvirt, simplificando todo o processo.
Paralelamente, Derek Lin, o principal contribuidor do projeto, atualizou os módulos QML, que são os blocos de construção do KDE para a criação de interfaces de utilizador. Esta medida visa padronizar a forma como os componentes da aplicação são geridos.
O desafio de criar um cliente SPICE de raiz
A maior parte do trabalho recente concentrou-se no desenvolvimento de um cliente SPICE a partir do zero. Para quem não conhece, o SPICE é um protocolo de desktop remoto responsável por renderizar o ecrã, o áudio e os inputs do sistema operativo convidado. Lin refere que dedicou bastante tempo simplesmente a conseguir que o ecrã da máquina virtual fosse exibido corretamente numa janela nativa do KDE.

O processo de capturar os dados brutos de imagem do SPICE e desenhá-los no ecrã revelou-se complicado. Inicialmente, a imagem estava repleta de cores estranhas e falhas de transparência. Após várias tentativas, descobriu-se que a causa era um problema de sincronização: o código tentava ler os dados do ecrã ao mesmo tempo que o SPICE os estava a escrever. A solução foi simples e eficaz: criar uma cópia rápida dos dados antes de os exibir, resultando numa imagem limpa e estável.
Com o ecrã a funcionar, os inputs do utilizador, como cliques do rato e teclas premidas, são agora encaminhados para a máquina virtual. No entanto, subsiste um pequeno obstáculo: os eventos de teclado do Qt usam scancodes evdev, enquanto o SPICE espera o formato mais antigo PC XT, o que obriga a um mapeamento manual por agora.
O que se segue para o Karton?
Apesar do progresso, Lin reconhece que o método de renderização atual é ineficiente e causa algum "tearing" (rasgos na imagem). O próximo passo é investigar a propriedade gl-scanout do SPICE para obter um desempenho mais otimizado.
Os planos futuros incluem também a implementação do reencaminhamento de áudio e eventos de arrastar do rato mais precisos. Além disso, está prevista uma reformulação da interface de utilizador para incluir uma barra lateral, à semelhança do que se encontra no UTM, o gestor de máquinas virtuais desenhado para as plataformas da Apple como o macOS.
Os entusiastas que queiram acompanhar de perto o desenvolvimento podem consultar a página do projeto no GitLab e ler a publicação completa de Derek Lin no KDE Blogs.










Nenhum comentário
Seja o primeiro!