PunktfunkPunktfunk

Arch Linux

Install the Punktfunk host on Arch, CachyOS or EndeavourOS from the signed pacman repo — four steps.

For Arch Linux and Arch-based distros (CachyOS, EndeavourOS, …). The host comes from a signed binary repo and updates with pacman -Syu like everything else. SteamOS is different — it has its own page.

1. GPU driver

  • NVIDIA: sudo pacman -S --needed nvidia-utils (NVENC and the zero-copy path; Arch's ffmpeg already has NVENC built in).
  • AMD / Intel: the Mesa stack you already have — vulkan-radeon / vulkan-intel for Vulkan Video, libva-mesa-driver / intel-media-driver for VAAPI. Usually all installed on a desktop.

2. Install the host

Trust the repo key once, add the repo, install. Every install and update here is a full -Syu on purpose — our packages are built against current Arch sonames, and pacman -Sy <pkg> is the partial upgrade that breaks Arch boxes:

curl -fsS https://git.unom.io/api/packages/unom/arch/repository.key | sudo pacman-key --add -sudo pacman-key --lsign-key E0CA04465C99C936E0B0C6510A317015A34DDD69grep -q '^\[punktfunk\]' /etc/pacman.conf || printf '\n[punktfunk]\nServer = https://git.unom.io/api/packages/unom/arch/$repo/$arch\n' | sudo tee -a /etc/pacman.conf >/dev/nullsudo pacman -Syu punktfunk-host

The browser console is optional on Arch, so name it yourself — same line, full upgrade: sudo pacman -Syu punktfunk-web. (Also in the repo: punktfunk-gamescope for HDR off gamescope, punktfunk-scripting for plugins, punktfunk-client if this box is also a client.)

From then on a normal sudo pacman -Syu moves every Punktfunk package; restart the host afterwards (systemctl --user restart punktfunk-host) — or let the console do it.

3. Let it use your controllers

Join the input group (virtual gamepads go through /dev/uinput), then log out and back in:

sudo usermod -aG input "$USER"

Want the virtual Steam Deck controller (paddles, trackpads, gyro)? Also join the punktfunk group — what it gates and why it's separate.

4. Start it

From a terminal inside your desktop session:

systemctl --user enable --now punktfunk-host punktfunk-web
systemctl --user enable --now punktfunk-scripting   # if you installed the plugin runner — other distros start it for you, Arch doesn't

Firewall: stock Arch has none. CachyOS enables ufw, EndeavourOS enables firewalld — on those the host is unreachable until you allow it (the package installed the profiles):

sudo ufw allow punktfunk-native && sudo ufw allow punktfunk-web                                   # CachyOS (ufw)
sudo firewall-cmd --reload && sudo firewall-cmd --permanent --add-service=punktfunk-native --add-service=punktfunk-web && sudo firewall-cmd --reload   # firewalld

Ports & firewall has every port, and the GameStream profile if you turn Moonlight compat on.

That's the install. Continue with the Quick Start from step 3 — open the console, pair a client, stream.

When you want more

  • pacman says database already registered? The repo got added twice — the one-line fix. unable to satisfy dependency 'libavcodec.so=…'? FFmpeg major mismatch — what to do.
  • punktfunk-host detect-conflicts tells you if Sunshine or Apollo is also running; Troubleshooting starts from the symptom.
  • Your desktop's particulars — KDE, GNOME, gamescope, Hyprland, Sway.
  • Stream with nobody logged in — Running as a service (sudo loginctl enable-linger "$USER" is the one extra line).
  • Track main instead of releases ([punktfunk-canary], same Server line — enable exactly one) — Release channels. Build it yourself with the split PKGBUILDBuild from source.

On this page