Skip to main content

index

Visual overview

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 xfwl4 Wayland-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
LayerContents
Platformfreedesktop-sdk base runtime
RuntimeXFCE core libraries and dependencies
ApplicationXFCE session, panel, Thunar, terminal, settings, 55 apps total
Configurationdconf 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 bst2 container)
  • 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​

RecipeDescription
just buildFull OCI build, export, and Dakota-style chunkify
just exportRefresh the exported image
just generate-bootable-imageCreate a bootable raw disk image via bootc
just boot-vmLaunch the image in QEMU
just statusShow build status
just logsView build logs
just cleanClean 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.

πŸ“š More Documentation​


Part of the Tuna OS ecosystem.