Repository navigation
v0.22.0: Phase 9 Complete -- KDE Plasma 6 Desktop Environment Porting Infrastructure
VeridianOS v0.22.0 -- Phase 9 Complete: KDE Plasma 6 Desktop Environment Porting Infrastructure
Release Date: March 8, 2026
Previous Version: v0.21.0 (Performance Benchmarking + Verification Infrastructure)
Phase: 9 of 9 -- COMPLETE
Overview
v0.22.0 completes Phase 9: KDE Plasma 6 Desktop Environment, the final development phase of VeridianOS. This release delivers the complete 8-layer porting infrastructure for running KDE Plasma 6 as a Wayland desktop session on VeridianOS, spanning 11 sprints, 314 tasks, and approximately 130 new files totaling ~45,000 lines of C/C++ and shell code across 6 userland/ directories.
The existing built-in desktop environment (9 apps, in-kernel Wayland compositor) is preserved as a lightweight fallback session type selectable at login.
What's New
Complete KDE Plasma 6 Porting Stack
The porting infrastructure covers every layer required to build and run KDE Plasma 6 on VeridianOS:
| Layer | Sprint | Components | LOC |
|---|---|---|---|
| 0 | 9.0 | Dynamic linking (ld-veridian), libc extensions, C++ runtime (libstdc++) | ~3,500 |
| 1 | 9.1 | DRM/KMS user-space, evdev, libdrm, libinput | ~3,200 |
| 2 | 9.2 | zlib, libffi, pcre2, ICU, OpenSSL, libxml2 | ~2,800 |
| 3 | 9.3 | EGL 1.5, OpenGL ES 2.0 (~150 entry points), libepoxy, Mesa cross-file | ~4,800 |
| 4 | 9.4 | FreeType 2.13.3, HarfBuzz 9.0.0, Fontconfig 2.15.0, libxkbcommon 1.7.0 | ~9,300 |
| 5 | 9.5 | libdbus-1, systemd-logind shim, Polkit | ~5,400 |
| 6 | 9.6 | Qt 6 QPA plugin (19 files), mkspec, platform module, CMake toolchain | ~3,100 |
| 7 | 9.7 | KDE Frameworks 6: ECM, Solid, KIO, KWindowSystem, KWallet + build scripts | ~5,100 |
| 8 | 9.8 | KWin: DRM platform (1,228 LOC), libinput (790), KDE protocols (1,153), effects (483) | ~5,800 |
| 9 | 9.9 | Plasma: Breeze style (1,580), decoration (1,054), lock screen (1,106), KScreen, PowerDevil | ~6,900 |
| 10 | 9.10 | Integration: boot, display manager, XWayland, perf profiler, rootfs, CI | ~4,600 |
Key Components
Graphics Stack (Sprint 9.3)
- EGL 1.5 display lifecycle with DRM/GBM backend
- OpenGL ES 2.0 with ~150 entry point stubs and state tracking
- libepoxy GL/EGL function dispatch
- Meson cross-file for Mesa llvmpipe + virgl builds
Qt 6 Platform Abstraction (Sprint 9.6)
- QPA plugin "qveridian" with Wayland + EGL + xkbcommon integration
- Platform-specific syscall shims: eventfd, timerfd, inotify, memfd_create
- CMake cross-compilation toolchain for Qt 6.8
KWin Compositor (Sprint 9.8)
- DRM/KMS platform backend: CRTC/connector enumeration, GBM surfaces, EGL on GBM, page flip VSync
- libinput input backend: keyboard/pointer/touch event translation, xkbcommon keymap sharing
- 7 KDE Wayland protocol implementations: plasma_shell, window_management, server_decoration, blur, DPMS, outputdevice, outputmanagement
- GPU-aware effects configuration: llvmpipe/virgl/real GPU detection with per-tier effect lists
Plasma Desktop (Sprint 9.9)
- Breeze Qt widget style: 15+ widget types with animation engine
- Breeze window decoration: 8 button types, hover animations, configurable borders, shadow generation
- Lock screen: SHA-256 auth against UserDatabase, ext-session-lock-v1 protocol
- KScreen display backend: DRM output enumeration, EDID parsing, multi-monitor layout
- PowerDevil: battery sysfs, DPMS control, CPU frequency governors
- 5 .desktop files for Dolphin, Konsole, Kate, Spectacle, System Settings
Integration (Sprint 9.10)
- Display manager with session type selection (built-in DE vs KDE Plasma)
- XWayland: on-demand launch, clipboard sharing, input forwarding
- Performance profiler: memory RSS, FPS, input latency, D-Bus RTT validation
- 2GB KDE rootfs builder with font cache generation
- QEMU launch script with VirtIO GPU 3D acceleration
- GitHub Actions CI workflow with sysroot caching and screenshot comparison
Directory Structure
userland/libc/ C library shims (EGL, GLES2, FreeType, HarfBuzz, Fontconfig,
xkbcommon, D-Bus, logind, Polkit, xattr + 60+ headers)
userland/qt6/ Qt 6 QPA plugin, mkspec, toolchain, platform module
userland/kf6/ KDE Frameworks 6: ECM, Solid, KIO, KWindowSystem, KWallet
userland/kwin/ KWin compositor: DRM platform, input, protocols, effects
userland/plasma/ Plasma Desktop: Breeze theme, lock screen, KScreen, PowerDevil
userland/integration/ Boot integration, display manager, XWayland, CI, testing
Build & Test
# Standard build (unchanged -- KDE porting files are userland, not kernel)
./build-kernel.sh all dev
# Clippy (0 warnings on all 3 architectures)
cargo clippy --target targets/x86_64-veridian.json -p veridian-kernel \
-Zbuild-std=core,compiler_builtins,alloc -Zbuild-std-features=compiler-builtins-mem \
-- -D warnings
# Host-target tests (4,095 passing, no regressions)
cargo testStatistics
| Metric | Value |
|---|---|
| Version | v0.22.0 |
| Phase 9 sprints | 11/11 complete |
| Phase 9 tasks | 314/314 complete |
| New files (Phase 9) | ~130 |
| New LOC (Phase 9) | ~45,000 |
| All phases complete | 0-9 |
| Kernel tests | 4,095 passing |
| CI pipeline | 11/11 green |
| Clippy warnings | 0 (all 3 architectures) |
| Releases published | 77 |
Known Limitations
See userland/integration/KNOWN-LIMITATIONS.md for details:
- Software rendering (llvmpipe) limited to ~15 FPS; VirtIO virgl achieves 60 FPS
- XWayland: No GLX (EGL only), clipboard limited to text, no DRI3
- No NetworkManager, BlueZ, PipeWire, or PulseAudio integration yet
- KDE Activities, Baloo file indexing, and KRunner not yet functional
- Minimum system requirements: 2GB RAM, VirtIO GPU recommended
What's Next
With all 10 development phases (0-9) complete, VeridianOS is ready for:
- v1.0.0 final release preparation
- Real hardware testing on x86_64 systems
- Community contributions and external testing
- Upstream KDE cross-compilation using the porting infrastructure
Full Changelog: v0.21.0...v0.22.0