Files
punktfunk/docs-site/content/docs/fedora-kde.md
T
enricobuehler 91d5874e94
ci / web (push) Failing after 47s
ci / rust (push) Successful in 54s
docker / build-push (., web/Dockerfile, punktfunk-web) (push) Successful in 4s
docker / build-push (ci, ci/rust-ci.Dockerfile, punktfunk-rust-ci) (push) Successful in 3s
docker / build-push (docs-site, docs-site/Dockerfile, punktfunk-docs) (push) Successful in 17s
ci / docs-site (push) Failing after 37s
docker / deploy-docs (push) Successful in 17s
apple / swift (push) Successful in 1m19s
docs: user-facing docs revamp — structured product docs + per-platform setup
Replace the dev/agent-log pages with a proper user-facing doc set:

- Getting Started: Introduction (rewritten), How It Works, Quick Start.
- Host Setup: Requirements, then clean per-platform guides — Ubuntu GNOME,
  Ubuntu KDE, Fedora KDE (new), Bazzite (rewritten) — plus Running as a Service
  (desktop / headless GNOME / headless KDE).
- Connecting: Clients overview, Moonlight, Pairing & Trust.
- Configuration: host.env reference, Host CLI, Troubleshooting.
- The dev/design notes (architecture, roadmap, the deferred design specs, CI)
  move to a clearly-separated "Project & Internals" nav section.

Removes the superseded box-specific pages (gnome-box, headless-box, linux-setup,
overview). status.md (the internal progress tracker, with box IPs) is kept as a
file but dropped from the public nav. Site builds clean.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-12 14:01:19 +00:00

2.5 KiB

title, description
title description
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-cuda

Let 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 akmods need 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-devel

Fedora ships FFmpeg through RPM Fusion (ffmpeg + ffmpeg-devel) or the -free packages shown above. Either works; the host builds against the system FFmpeg.

Install Rust:

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

3. Build

git clone https://git.unom.io/unom/punktfunk.git && cd punktfunk
cargo build --release -p punktfunk-host

4. 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 --native

Make 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.