GEM para Linux: escritorio gráfico clásico con servidor de pantalla propio

Fuentes: GEM for Linux: classic graphical desktop with shared display server

GEM para Linux es un proyecto de código abierto que ofrece un escritorio gráfico clásico para sistemas Linux, con ventanas, menús, diálogos, terminal, calculadora y reloj. Las aplicaciones comparten un servidor de pantalla, que puede renderizarse mediante un visor Rasta o directamente sobre el framebuffer nativo de Linux.

El proyecto está pensado para desarrolladores que quieran experimentar con interfaces gráficas tradicionales sobre hardware Linux real. Entre sus dependencias se encuentran GCC/G++, GNU Make, CMake 3.20 o superior, Git, Python 3, pkg-config, las cabeceras de desarrollo de SDL2 e ImageMagick. La compilación descarga y verifica archivos fuente pinned de Rasta y Musashi, almacenándolos en un directorio build que queda excluido del control de versiones; las compilaciones posteriores los reutilizan sin necesidad de nuevos checkouts.

La guía de uso propone abrir tres terminales y lanzar, por orden, ./bin/tools/rasta con los parámetros --inverse y --port 5000, el servicio ./bin/core/gemd y, por último, la aplicación de escritorio ./bin/samples/desktop, esperando a que gemd confirme que está escuchando. Como alternativa, desde VS Code con F5 se inician el escritorio y todas las muestras a la vez. También es posible construir y probar todo dentro de un contenedor Docker, sin las dependencias del compilador, siempre que el equipo disponga de Docker y GNU Make; la primera compilación requiere acceso a internet.

Para generar el paquete nativo de despliegue se utiliza CMake con el objetivo gemix_package en modo Release, y se copia el directorio bin/gemix resultante, por ejemplo, a /opt/gemix. La ejecución nativa exige acceso al framebuffer y a los dispositivos de entrada de Linux; la guía GEMIX_LINUX.md detalla la selección de dispositivos, las rutas de recursos y el arranque del escritorio instalado.