index
Prefer a visual tour? See the XFCE Linux overview β landing page.
β οΈ Alpha β early development. Not production-ready. APIs and behaviour may change without notice.
XFCE Linux is a lightweight, immutable XFCE desktop OS image built from source
with BuildStream. It layers the XFCE desktop on top
of freedesktop-sdk and gnome-build-meta infrastructure,
then publishes a bootable OCI/bootc image to ghcr.io/tuna-os/xfce-linux.
It is the XFCE sibling of TromsΓΈ (KDE) and Project Bluefin's Dakota (GNOME) β same BuildStream-from-source approach, different desktop.
β¨ Key Featuresβ
- πͺΆ Lightweight β XFCE desktop tuned for low-resource systems.
- π Immutable β OCI-based image with atomic updates and rollback via
bootc. - π Wayland β ships the
xfwl4Wayland-native XFCE compositor. - π§± Built from source β reproducible BuildStream pipeline on freedesktop-sdk 25.08.
- π¦ Complete desktop β 55 XFCE applications and 31 panel plugins.
π Quick Startβ
Pull and switch an existing bootc system to XFCE Linux:
# Pull the image
podman pull ghcr.io/tuna-os/xfce-linux:latest
# Switch an existing bootc system
sudo bootc switch ghcr.io/tuna-os/xfce-linux:latest
sudo systemctl reboot
ποΈ Architectureβ
XFCE Linux composes its image in layers, the same pattern used across the BuildStream desktop family:
freedesktop-sdk 25.08.9 Platform + runtime SDK
β
gnome-build-meta (gnome-50) Shared desktop build infrastructure
β
xfce-wayland layer 55 XFCE apps + 31 panel plugins + xfwl4 compositor
β
XFCE Linux OCI image Bootable bootc image β ghcr.io/tuna-os/xfce-linux
| Layer | Contents |
|---|---|
| Platform | freedesktop-sdk base runtime |
| Runtime | XFCE core libraries and dependencies |
| Application | XFCE session, panel, Thunar, terminal, settings, 55 apps total |
| Configuration | dconf defaults, display manager, Wayland session |
The boot flow runs UEFI β kernel β systemd β display manager β XFCE (Wayland) session.
π Build From Sourceβ
XFCE Linux uses just for build automation.
Prerequisitesβ
- BuildStream 2.7.0+ (via the
bst2container) - Podman or Docker
- QEMU + KVM for boot testing
- 200 GB+ free disk space for the BuildStream cache
- 16 GB+ RAM recommended
Build and testβ
git clone https://github.com/tuna-os/xfce-linux.git
cd xfce-linux
# Build the OCI image, export it, and chunkify it Dakota-style
just build
# Refresh the exported image
just export
# Generate a bootable disk image and boot it in QEMU
just generate-bootable-image
just boot-vm
Useful recipesβ
| Recipe | Description |
|---|---|
just build | Full OCI build, export, and Dakota-style chunkify |
just export | Refresh the exported image |
just generate-bootable-image | Create a bootable raw disk image via bootc |
just boot-vm | Launch the image in QEMU |
just status | Show build status |
just logs | View build logs |
just clean | Clean the build cache |
π¦ What's Insideβ
- Core:
xfce4-session,xfce4-panel,xfwm4,xfdesktop - Compositor:
xfwl4(Wayland-native) - File manager: Thunar with plugins
- Terminal:
xfce4-terminal - Settings:
xfce4-settings,xfce4-power-manager - Plugins: 31 panel plugins (clock, system monitor, weather, audio mixer, β¦)
- β¦and 50+ more applications.
π Project Statusβ
XFCE Linux is in alpha. The image builds cleanly (1060/1060 BuildStream elements,
zero errors) and boots to a working session in QEMU. The export/bootc-install path
is being hardened via Dakota-style chunkifying. Track progress in
PROJECT_STATUS.
π Related projectsβ
- TromsΓΈ β the KDE sibling, built the same BuildStream-from-source way.
- Project Bluefin Dakota β the GNOME reference this approach follows.
- TunaOS β the org's flagship bootc Enterprise Linux desktops.
- See every project on the Projects page β.
π More Documentationβ
- Build Guide β full build guide and project layout
- PROJECT_STATUS β current state, metrics, and roadmap
- Contributing β how to add components and submit changes
Part of the Tuna OS ecosystem.