The GoNIX desktop

GoNIX boots happily to a server, but it also ships a complete Wayland desktop — and, true to form, it’s built entirely from source out of GoNIX’s own package tree. No vendored Alpine closure, no Mesa, no GL.

The GoNIX Wayland desktop running under QEMU: a labwc session with a yambar panel and a foot terminal.
labwc + yambar + foot, software-rendered under QEMU — the whole desktop built from GoNIX's own package tree.

The stack

labwc

A lightweight, Openbox-inspired Wayland compositor (wlroots, pixman software renderer) with window decorations, a root menu, and a Tokyo-Night theme.

foot + fuzzel

A fast terminal and an application launcher, both fcft/pixman — no cairo/pango/GL on the hot path.

yambar + wbg

A status panel with a live window taskbar, CPU/memory readouts and a clock, plus a wallpaper setter.

No Mesa, no GPU drivers

The target is a virtual machine, so GoNIX renders in software: virtio-gpu + KMS dumb buffers + the wlroots pixman renderer. That single decision removes the entire Mesa/LLVM/GL dependency tree — the desktop is small, portable, and boots on a plain QEMU VM with no GPU passthrough.

A from-source library bootstrap

Behind the desktop sits a self-hosted stack of 44 library ports — zlib through pango — each built against the GoNIX libraries below it rather than the host distro. The compositor layer (wlroots, foot, fuzzel, yambar, labwc) links only GoNIX packages. The whole thing is reproducible from one ordered build.

Apps

The package repository carries a usable kit out of the box:

$ pkg install wayland-desktop
$ startgui

That pulls the compositor, panel, terminal and launcher, and startgui brings up the session on the console.

GoNIX's cefbrowser rendering the live gonix.dev site on the labwc desktop: a Chromium-rendered page in a browser window, with the yambar panel above.
cefbrowser rendering a live site (gonix.dev) on the GoNIX desktop. The pure-Go wlui shell draws the window and chrome; the page is rendered by Chromium (CEF) running in a box container.