| audio | ||
| battery | ||
| capture | ||
| clock | ||
| credentials | ||
| display | ||
| fonts | ||
| fullscreen | ||
| fvwm | ||
| input | ||
| install | ||
| kde-compat | ||
| language | ||
| launcher | ||
| lock | ||
| notifications | ||
| packages | ||
| panel | ||
| ports | ||
| qt-style | ||
| session | ||
| switcher | ||
| terminal | ||
| tests | ||
| tray | ||
| wallpaper | ||
| xkb | ||
| .gitattributes | ||
| .gitignore | ||
| install.sh | ||
| LICENSE | ||
| README.md | ||
Xenolith
Xenolith is an X11-native desktop and workstation environment for FreeBSD. It aims to provide a fast, deterministic, hard-edged desktop built from explicit, reproducible components under the user's control.
Xenolith is a FreeBSD desktop project. Linux, systemd, and Wayland-first environments are outside its scope.
Status
Xenolith is in its initial development stage. The repository does not yet provide a complete desktop environment or a supported installer.
Direction
The intended environment combines:
- Xorg and/or XLibre as the display server;
- FVWM3 as the initial window-management substrate;
- KDE applications without the Plasma desktop shell;
- focused session and compatibility glue;
- custom panel, taskbar, desktop, and diagnostic utilities where needed; and
- reproducible installation, migration, and rollback tooling.
The interaction model is based on multiple workspaces containing normal stacking windows. Primary windows may be maximized by default, while manually sized and floating windows remain first-class. Automatic tiling is not the primary workflow.
Design principles
- X11 is a first-class, non-negotiable display protocol.
- Interaction should be immediate, predictable, and low-latency.
- Configuration belongs in source control instead of opaque mutable state.
- Components should be small, explicit, native, and easy to diagnose.
- KDE applications should receive only the services they actually require;
plasmashellandkwinare not part of a Xenolith session. - Visual design should favor square edges, strong borders, clear state, and an industrial workstation character over animation and decorative effects.
- Installation must be inspectable, safe to rerun, and explicit about system changes.
Target environment
FreeBSD is the authoritative runtime and integration-test platform. A separate development machine may be used to edit and deploy the repository, but runtime behavior must be validated on FreeBSD using FreeBSD-native facilities.
Installation
Xenolith installs onto an existing FreeBSD X11/XLibre desktop with:
./install.sh --user user
The default installer does not install, replace, or configure an X server or
GPU driver. It preflights the patched Xenolith (z440) FVWM/tray
transaction and rejects any package plan that would introduce the
Xorg/NVIDIA legacy stack or mutate protected XLibre graphics packages. The
ordinary FreeBSD package set is explicitly installed from FreeBSD-ports; the
same guard applies to both repositories. z440 is used only for packages that
Xenolith intentionally carries as patched builds.
The z440 client repository must point at its filtered Xenolith feed (not the
Poudriere ABI-root catalogue). First-party package names are selected from
that feed while ordinary dependencies and KDE applications are resolved from
FreeBSD-ports in the same mixed transaction. The installer rejects an
unfiltered first-party feed before changing package state. Xenolith does not
replace an existing Xorg/XLibre server or GPU driver by default.
For an AMDGPU/XLibre host, keep the normal FreeBSD Mesa/DRM stack and review
the XLibre server/driver migration separately before starting the Xenolith
session.
For an explicit migration from an existing Xorg installation, run
./install.sh --user user --xlibre. The migration uses the upstream FreeBSD
XLibre server and XLibre-flavoured libinput driver, guards the removal plan,
preserves KDE applications and shared Frameworks, and leaves SDDM available as
a display manager. It does not install a vendor GPU driver; AMDGPU uses
XLibre's modesetting path with the existing kernel/Mesa stack. Select the
Xenolith session at the next SDDM login (or use startx from a console).
The VNC test-session component remains separate from a normal local desktop installation.
Project boundaries
Xenolith is a desktop/workstation environment, not a complete operating system or a general-purpose desktop distribution. It reuses FreeBSD and standalone Unix facilities where they solve a problem cleanly and adds custom code only where Xenolith requires distinct behavior.