Native Wayland renderer · Video wallpaper engine

Kitsune RenderCore

Native Wayland video wallpaper engine with multi-monitor GPU rendering in a single process, without relying on mpvpaper.


Current pipeline

ffmpeg -> Rust Runtime -> wgpu -> layer-shell -> Wayland

Status and classification

  • Status: In progress
  • Date: 2026-01 - Present
  • Current state: Functional runtime with ffmpeg decode, per-monitor rendering, hot-reload and systemd deployment. Still evolving in advanced scheduling policies and extended global config.

Overview

Kitsune RenderCore is the new native Wayland wallpaper engine in the Kitsune ecosystem.

Unlike the previous mpvpaper + FIFO-based pipeline, RenderCore implements a direct layer-shell renderer in a single process, with shared GPU and true multi-monitor support.

The runtime decodes video to RGBA via ffmpeg, manages per-monitor streams, and renders directly to Wayland surfaces using wgpu.

Each monitor maintains its own VideoStream with automatic hot-reload when video mappings change.

Key features

  • True multi-monitor rendering (one layer_surface per wl_output)
  • Shared GPU rendering via wgpu
  • Per-monitor hot-reload without restarting process
  • Fullscreen shader + optional wave effect (WGSL)
  • Procedural fallback if no valid video is available
  • Steam game detection to pause rendering
  • Frame budget scheduler
  • Full systemd --user integration
  • Operational CLI: set-video, unset-video, status, service
  • Stub backend for development without real Wayland session

Role and responsibilities

  • Full native Wayland engine design
  • Layer-shell backend implementation
  • wgpu GPU rendering pipeline integration
  • Multi-monitor surface architecture
  • Runtime and frame scheduler development
  • Per-monitor hot-reload implementation
  • ffmpeg RGBA decode integration
  • CLI and systemd --user service design
  • Steam game detection for automatic pause

Tech stack

RustwgpuWaylandwlr-layer-shellffmpegsystemdWGSL

Links

Note

This core intentionally has no gallery or carousel in the portfolio.

enes