Após um ano de desenvolvimento, está disponível a versão 0.6.1 do motor de desktop Arcan, que combina um servidor de exibição, um framework multimídia e um motor de jogos para processamento de gráficos 3D. O Arcan pode ser usado para criar diversos sistemas gráficos, desde interfaces de usuário para aplicativos embarcados até ambientes de desktop autossuficientes. Incluído nisso, está o desktop tridimensional Safespaces para sistemas de realidade virtual e o ambiente de desktop Durden. O código do projeto é escrito em C e licenciado sob a licença BSD (alguns componentes sob GPLv2+ e LGPL).
A nova versão inclui recursos acumulados ao longo do ano, principalmente focados no desenvolvimento do subsistema para acesso remoto ao desktop. De forma geral, está sendo apresentado o plano de preparação para o primeiro lançamento significativo 1.0: Na próxima versão 0.7, espera-se trabalhar na expansão do subsistema de áudio, melhoria da compatibilidade e desenvolvimento de ferramentas para gráficos 3D. A versão 0.8 será focada na otimização e desempenho, enquanto 0.9 se concentrará na segurança.
Entre as mudanças mais notáveis na versão 0.6.1 do Arcan, destaca-se a modernização do servidor de exibição servidor arcan-wayland, que utiliza o protocolo Wayland, no qual foi implementada uma camada para uso do EGL, e o suporte a dma-buf foi habilitado por padrão. No servidor X Xarcan, a gestão das trocas de GPU foi aprimorada, e o suporte para clipboard e aceleração de hardware na renderização do cursor foi adicionado. Melhorias foram feitas no suporte a telas com taxa de atualização variável.
Muitas mudanças internas foram realizadas, visando melhorar a sincronização e aumentar a eficiência na gestão de filas de eventos. O desenvolvimento do servidor gráfico "arcan-net" para trabalho remoto com desktop pela rede foi continuado, utilizado neste servidor protocolo A12, que está sendo desenvolvido como substituto para SSH/VNC/RDP/X11. As ligações para desenvolvimento de componentes em Lua foram atualizadas.
A proposta do Pipeworld permite redirecionar fluxos de dados entre janelas, conectando dados e manipuladores em diferentes janelas, semelhante a células em planilhas eletrônicas, formando um fluxo de trabalho misto que combina interfaces gráficas e de console (por exemplo, é possível redirecionar a saída de uma janela para um manipulador shell executado em terminal e usar o resultado em outra janela).

Vale lembrar que o Arcan não está vinculado a um sistema gráfico específico e pode operar sobre diferentes ambientes de sistema (BSD, Linux, macOS, Windows), utilizando backends plugáveis. Por exemplo, é possível executá-lo sobre Xorg, egl-dri, libsdl e AGP (GL/GLES). Sob o servidor de exibição Arcan, aplicativos clientes baseados em X, Wayland e SDL2 podem ser executados. Os principais critérios aplicados no design da API Arcan incluem segurança, desempenho e adequação para depuração. Para simplificar o desenvolvimento de interfaces, é sugerido o uso da linguagem Lua.
Características do Arcan:
- Combinação de funções de servidor compositor, servidor de exibição e gerenciador de janelas.
- Capacidade de operar em modo isolado, onde o aplicativo atua como um link autossuficiente.
- Framework multimídia integrado, fornecendo recursos para trabalho com gráficos, animações, processamento de vídeo e áudio em streaming, carregamento de imagens e interação com dispositivos de captura de vídeo.
- Modelo multiprocessado para conectar manipuladores de fontes dinâmicas de dados — de streams de vídeo até a saída de programas individuais.
- Modelo rígido de separação de privilégios. Os componentes do mecanismo são divididos em pequenos processos não privilegiados que interagem por meio da interface de memória compartilhada shmif;
- Ferramentas integradas de monitoramento e análise de falhas, incluindo a capacidade de serializar o estado interno de scripts Lua para facilitar a depuração;
- Funcionalidade de fallback, que em caso de falha devido a um erro no programa pode iniciar um aplicativo de reserva, mantendo as mesmas fontes de dados externas e conexões;
- Recursos avançados de compartilhamento que podem ser utilizados para gravar ou transmitir subconjuntos individuais de fontes de áudio e vídeo durante a implementação do compartilhamento de desktop.
Além disso, cabe destacar a preparação do novo lançamento da área de trabalho Durden 0.7, desenvolvido para ser usado com o Arcan. Na versão 0.7, haverá suporte para a colocação vertical da barra de título da janela e da barra de status, além de uma ferramenta adicionada para acompanhamento de voz (text to speech). O Durden suporta tanto uma interface em mosaico com plenos meios de controle pelo teclado quanto um modo de janelas flutuantes na tela. Todas as configurações, incluindo métodos de entrada, fontes e efeitos visuais, podem ser alteradas dinamicamente, sem necessidade de reiniciar a configuração.
É possível configurar comportamentos distintos para cada janela e usar um buffer de transferência independente associado à janela. O funcionamento em sistemas com múltiplos monitores com diferentes DPI é suportado. Há a capacidade de exibir menus de aplicativos na barra (menu global) ou colocar o menu no cabeçalho da janela. Na área de trabalho, a colocação de widgets é permitida. Existe uma função embutida para gravação de vídeo das ações na área de trabalho e em janelas individuais. A subsistema de controle de entrada suporta a troca de layouts de teclado e a possibilidade de trabalhar com dispositivos expandidos, como consoles de jogos.
Fonte: opennet.ru
