GitHub - triglav-os/gem

GitHub

2 min read Original article ↗

GEM for Linux

GEM for Linux provides a classic graphical desktop with windows, menus, dialogs, a terminal, calculator and clock. Applications share a display server, with either a Rasta viewer or a native Linux framebuffer display.

GEM desktop with file manager, calculator, clock and terminal

Build

Requires Linux, GCC/G++, GNU Make, CMake 3.20+, Git, Python 3, pkg-config, SDL2 development files and ImageMagick. The build downloads and verifies a pinned Rasta and Musashi source archives into ignored build/ storage. Subsequent builds reuse them; no separate checkouts are needed. From the repository root:

make
make tests    # optional; results in docs/tests/LATEST.md

Alternatively, make container builds and tests using Docker; the host needs Docker and GNU Make instead of the compiler dependencies. The first build needs internet access. See the build guide.

Run

Start these commands in three separate terminals, in order. Wait for gemd to report that it is listening before starting the desktop:

./bin/tools/rasta --inverse --port 5000
./bin/core/gemd
./bin/samples/desktop

Alternatively, press F5 with GEM — all samples in VS Code to start the desktop and every sample together. See the hosted development guide for setup and the samples guide for SDK builds.

Install

Build the native Linux deployment package:

cmake -S . -B build -DCMAKE_BUILD_TYPE=Release -DGEM_PLATFORM=linux
cmake --build build --target gemix_package -j"$(nproc)"

Copy the complete bin/gemix directory to your installation location, for example /opt/gemix. Native operation requires access to Linux framebuffer and input devices. Follow the installation and startup guide to select devices, set resource paths and start the installed desktop.