Fedora — KDE Plasma
Set up a punktfunk host on Fedora with KDE Plasma (KWin).
Set up a punktfunk host on Fedora KDE (the KDE Plasma spin). Like the Ubuntu KDE setup, the host uses KWin to create per-client virtual displays — the difference is the package manager and the NVIDIA driver source.
Fedora KDE is the newest supported setup. The flow mirrors Ubuntu — KDE; this page covers the Fedora-specific bits.
1. NVIDIA driver
The cleanest source on Fedora is RPM Fusion:
sudo dnf install \
https://mirrors.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm \
https://mirrors.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm
sudo dnf install akmod-nvidia xorg-x11-drv-nvidia-cudaLet the akmod build finish (a few minutes), then reboot. Verify:
nvidia-smi
cat /sys/module/nvidia_drm/parameters/modeset # should print Y (RPM Fusion enables it by default)With Secure Boot enabled, RPM Fusion's
akmodsneed their key enrolled — follow the RPM Fusion Secure Boot guide, or disable Secure Boot.
2. Dependencies
sudo dnf install gcc gcc-c++ make cmake clang clang-devel nasm git \
pipewire pipewire-pulseaudio wireplumber pipewire-devel \
wayland-devel wayland-protocols-devel libxkbcommon-devel opus-devel \
libdrm-devel mesa-libgbm-devel mesa-libEGL-devel mesa-libGLES-devel libva-devel \
ffmpeg-free-devel libei-develFedora ships FFmpeg through RPM Fusion (
ffmpeg+ffmpeg-devel) or the-freepackages shown above. Either works; the host builds against the system FFmpeg.
Install Rust:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh3. Build
git clone https://git.unom.io/unom/punktfunk.git && cd punktfunk
cargo build --release -p punktfunk-host4. Configure and run
Same as Ubuntu KDE — write ~/.config/punktfunk/host.env for KWin and run serve --native:
mkdir -p ~/.config/punktfunk
cat > ~/.config/punktfunk/host.env <<'ENV'
WAYLAND_DISPLAY=wayland-0
XDG_CURRENT_DESKTOP=KDE
PUNKTFUNK_COMPOSITOR=kwin
PUNKTFUNK_VIDEO_SOURCE=virtual
PUNKTFUNK_ZEROCOPY=1
PUNKTFUNK_INPUT_BACKEND=libei
ENV
cargo run --release -p punktfunk-host -- serve --nativeMake sure you're on a KDE Wayland session with KWin ≥ 6.5.6. Then connect a client. For boot-time startup, see Running as a Service.