Client settings
Every setting a Punktfunk client stores — what it does, what it defaults to, and which of them the host can overrule.
Every setting a Punktfunk app keeps, with its default and the apps that offer it. The host's own settings are on Configuration.
Where the settings live
The apps group settings as General, Display, Input, Audio and Controllers, under Preferences on Linux and Settings elsewhere. Apple TV has no Input and gives Quick Actions its own category. The controller interface (the console) has its own Settings, with the same five plus Presets and About. On a Steam Deck the console is the only settings screen: Open Punktfunk in the Decky panel.
Advanced settings
Rows most players never change are hidden until Show advanced, the last row of General, is on. A hidden setting still applies: a category with one changed says 1 advanced setting changed, and choosing that shows them. While you edit a preset, a row it overrides shows either way.
The advanced rows are Advanced statistics, Statistics position, Statistics size, Exit hint, Reduce interface resolution, Smoothness buffer, Render scale, Video codec, Full chroma (4:4:4), 10-bit SDR, V-Sync, Follow variable refresh, Host compositor, Video decoder, GPU, Low-latency mode, Keep screen awake, Audio quality, Keep host audio playing, Echo cancellation, Forward controllers, Use controller, Guide button, Hold Select for guide, Controller haptics, Controller speaker, Steam Controller 2 passthrough and DualSense over USB.
Linux stores settings in ~/.config/punktfunk/client-gtk-settings.json, shared with the console;
Windows in %APPDATA%\punktfunk\client-windows-settings.json. Changes apply to the next session.
Names below are the Linux app's. All means Linux, Windows, Mac, iPhone, iPad, Apple TV and Android. Most settings can differ per preset; the exceptions are listed below.
Video
| Setting | Default | What it does | Where |
|---|---|---|---|
| Resolution | Native display | The host builds a display at exactly this size. Native display is the screen the window is on. Aspect ratio picks which sizes are listed; Custom… takes a typed width and height. | All. Apple TV: Stream mode (Native, or 720p, 1080p or 4K at 60 Hz) and Custom size. Android adds Native display (safe area). |
| Match window | Off | The stream follows the window's size; each resize renegotiates. Fullscreen uses the screen's own mode. On a foldable iPhone that covers a fold, an unfold, a rotation and the upright half of a half-open one (foldable iPhone). | Linux, Windows, Mac, iPhone, iPad, console |
| Refresh rate | Native | The stream's frame rate. | All. Apple TV sets it with Stream mode. |
| Bitrate | Automatic | The whole budget on the wire: video, error correction and audio. Automatic starts at 20 Mbps, adapts to the link and never drops below 2 Mbps. A fixed rate holds for the session. | All. iPhone, iPad and Mac: Automatic bitrate plus a slider; elsewhere type any rate. |
| Render scale | Native (1×) | The host renders at your resolution times this, 0.5× to 4×: pick a stop, or type any percent from 50 to 400. Your device scales the picture to the window. Above 1× is sharper and costs bandwidth. | All |
| Picture fit | Fit | When the stream's shape differs from the screen: Fit adds black bars, Crop to fill cuts the edges, Stretch to fill distorts. | All. On Android 9, Crop to fill squeezes instead. |
| Second screen | On | A dual-screen handheld's lower panel, or a foldable half open, shows the companion panel — or the picture, with Screens (dual-screen handhelds). Off keeps the stream on this screen and leaves the other to the system: for a phone on a TV. A preset can carry it. | Android |
| Video codec | Automatic | Your pick when the host can encode it, otherwise HEVC, then AV1, then H.264. PyroWave is never picked automatically. | All. Apple and Android hide AV1 and PyroWave when the device can't decode them; the console marks them (unsupported). |
| PyroWave quality | 1.6 bits per pixel | Takes Bitrate's place while the codec is PyroWave. The slider reads as the rate it needs at your stream's size and refresh, such as 3840×2160 at 120 Hz: 1.6 Gbit/s; higher is sharper. A warning says when this device is on Wi-Fi or its port can't carry that rate. On a weak network the stream still sends less. See Bits per pixel. | Linux, Windows, Mac, iPhone, iPad, Apple TV, Android, console. Apple TV picks from a list of rates. |
| 10-bit HDR | On | Off never sends HDR. On sends 10-bit HDR when the host has HDR content and can encode it. See HDR. | All. Android greys it on a screen without HDR10. |
| Full chroma (4:4:4) | Off | Sharper text and thin lines, at more bandwidth. Needs HEVC or PyroWave and a host that can encode it. | Linux, Windows, Mac, iPhone, iPad, Apple TV |
| 10-bit SDR | Off | Smoother gradients without HDR, when the host has a 10-bit desktop or allows widening (see 10-bit SDR) and its encoder supports it. HDR takes over when it engages. | All |
| Prioritize | Lowest latency | Lowest latency shows each frame at once. Smoothness holds a small buffer that evens out network hiccups, at that much delay. | All |
| Smoothness buffer | Automatic (2 frames) | Frames held under Smoothness, 1 to 3. Each adds about one screen refresh of delay. | All |
| V-Sync | On (Mac: off) | Off shows each frame as soon as it's ready, with tearing. A driver without a tearing mode stays tear-free. | Linux, Windows, Mac |
| Follow variable refresh | On | Prefers the driver's variable-refresh present mode where it offers one. Whether a VRR, FreeSync or G-Sync screen then follows the stream is the compositor's call: Linux desktops want the window fullscreen and focused. | Linux, Windows, Mac, iPhone, iPad |
| Host compositor | Automatic | Which backend a Linux host uses for the virtual display. A host without it picks its own. | All |
| Video decoder, GPU | Automatic | The decoder and graphics card this device uses. Change them only to debug; PUNKTFUNK_DECODER overrides the decoder. | Linux, Windows. GPU: Windows, and Linux with more than one GPU. |
| Low-latency mode | On | Asks the decoder and system for their low-latency paths. Turn it off if a device misbehaves. | Android |
| Keep screen awake | On | Off, a stream keeps the screen awake only while you play: five minutes after your last key, touch or controller input, this device's own screen saver or sleep takes over. | Linux, Windows, Android, Apple |
Test network speed… in a host card's menu measures the link — what it carries, then loss and jitter at half of that, a rate the link holds — and suggests a bitrate (Android: Network speed test; Linux and Apple: on the host page). On the Linux and Windows session shells it also names what the link does: a host port faster than this device's, an adapter that drops the start of each burst, a small receive buffer, a link fault, a queue, Wi-Fi. There is nothing to switch on: the host paces every frame at the link rate this device measures. With PyroWave, PyroWave quality sets the rate instead of Bitrate.
Audio
| Setting | Default | What it does | Where |
|---|---|---|---|
| Audio channels | Stereo | Stereo, 5.1 or 7.1. A Linux host sends real surround; a Windows host converts its current output. | All |
| Audio quality | Standard (Opus) | Lossless sends uncompressed PCM, 2.3 Mbps and up, outside the video budget. The host can refuse it: see Configuration. | All. Linux and Windows offer 48 and 96 kHz in stereo; Apple and Android add 44.1, 88.2 and 176.4 kHz. |
| Keep host audio playing | Off | Off, the host goes quiet while you stream. On, its own speakers keep playing too. With several clients, one asking is enough. | All |
| Stream microphone | Off | Sends this device's microphone to the host. Ctrl+Alt+Shift+V mutes it. | All but Apple TV |
| Echo cancellation | On | Keeps the host's audio, playing from your speakers, out of the microphone. Turn it off if your microphone does its own processing. See Why do I hear myself. | All but Apple TV |
| Speaker, Microphone | System default | Which output plays the stream and which input feeds the microphone. | Linux, Windows, Mac (plus Microphone channel) |
Input
Touch modes, mouse modes and the in-stream keys are explained on Input.
Controllers
| Setting | Default | What it does | Where |
|---|---|---|---|
| Forward controllers | On | Off, this device's controllers aren't sent. Use it when a pad reaches the host another way, such as USB passthrough. On Linux and Windows, off also disables the controller exit chord. | All |
| Controller type | Automatic | The virtual pad the host creates; Automatic matches each controller. An Xbox pad has no gyro: for motion, pick DualSense, DualShock 4 or Steam Deck. | All. Steam Controller 2: Linux, Windows, console. |
| Controller rumble | On | Off, controllers don't vibrate from the stream or in the menus, whatever the game sends. A DualSense's haptics follow Controller haptics; a Steam Controller 2 in passthrough follows Steam on the host. | Linux, Windows, Android, Apple |
| Use controller | Automatic (all controllers) | Forward only the controller you pick. | Linux, Windows, Apple, console |
| Guide button | Automatic | Where the guide and quick-access buttons go: Send to host or This device. Automatic keeps them on the device only in Steam Deck Gaming Mode. See the guide button. | All |
| Hold Select for guide | Automatic | Hold Select about ⅓ s to press the host's guide button. A Select tap then arrives a beat late. Automatic turns it on in Gaming Mode and on iPhone, iPad and Apple TV. | All |
| Controller haptics | On | Plays a DualSense's voice-coil haptics, over USB or Bluetooth (Android: USB). See Controller audio. | Linux, Windows, Android |
| Controller speaker | On (Android: off) | Plays the game's pad audio on a DualSense's speaker. | Linux, Windows, Android |
| Steam Controller 2 passthrough | Off | Passes a Steam Controller 2 or a 2015 Steam Controller to a Linux or Windows host as itself, so its trackpads, gyro and haptics work as they do locally. Mac: USB, a dongle or Bluetooth. iPhone, iPad, Apple TV: Bluetooth. Android and the desktop clients always pass one through. | Apple |
| DualSense over USB | On | Drives a USB DualSense or DualShock 4 directly, for adaptive triggers, lightbar and gyro. | Android |
| Rumble on this phone, Gyro from this phone | Off | The phone's own motor and gyro stand in for a clip-on pad's. | Android, iPhone |
Keyboard, mouse and touch
| Setting | Default | What it does | Where |
|---|---|---|---|
| Touch input | Trackpad | Trackpad, Direct pointer, Touch passthrough or Off. | Linux, Windows, iPhone, iPad, Android |
| Mouse input | Capture (games) (Android: Desktop) | Capture locks the pointer for games; Desktop points absolutely. | Linux, Windows, Mac, Android |
| Capture pointer for games | On | Locks a hardware mouse for mouse-look in fullscreen. | iPad |
| Capture system shortcuts | On | While input is captured, Alt+Tab and the Windows key (⌘ shortcuts on a Mac) go to the host. Ctrl+Alt+Shift+Q or ⌘⎋ always releases capture. On Linux it needs KDE Plasma, GNOME or a wlroots compositor. | Linux, Windows, Mac |
| Modifier keys | Mac (⌥ Alt · ⌘ Super) | Windows (⌘ Alt · ⌥ Super) makes the key beside the space bar send Alt, like a PC keyboard. | Mac, iPhone, iPad |
| Invert scroll direction | Off | Reverses the scrolling sent to the host. | All but Apple TV |
Quick actions
Quick actions edits the in-stream quick-action dial on the dial itself: click or tap a button to change it, drag one onto another to swap them, and add key shortcuts. It's on every app and in the console (which edits your defaults only). On Android, Back opens quick actions (on) sets what Back does mid-stream.
Virtual controller (iPhone, iPad, Android) is under Quick actions:
| Setting | Default | What it does |
|---|---|---|
| Layout | Full | Full, Sticks and shoulders or D-pad and face buttons |
| Opacity | 45 % | 15–100 % |
| Scale | 100 % | 60–160 % |
| Edit layout | — | Move, resize (50–200 %) or hide each control. Wide and upright screens keep separate layouts. |
Behavior
| Setting | Default | What it does | Where |
|---|---|---|---|
| Start in | Host list | Library opens the default host's games; Stream connects to its desktop. With several paired hosts, set one with Make default host in its menu (Apple: Default host on the host page) or punktfunk default-host. | All |
| Auto-wake on connect | On | Wakes a sleeping saved host with Wake-on-LAN and waits. Turn it off for hosts over a VPN. | All |
| Start streams fullscreen | On | F11 or Alt+Enter leaves fullscreen. On Linux and a Mac, Always also keeps the app fullscreen. | Linux, Windows, Mac (Linux and Mac: Fullscreen: Off, While streaming, Always) |
| Keep streaming in background | Off | Audio and the connection stay live while you switch apps, for 10 minutes unless you pick another limit. | iPhone, iPad, Apple TV, Android phones (Keep streaming in the background) |
Interface
| Setting | Default | What it does | Where |
|---|---|---|---|
| Controller-optimized UI | On | Switches to the console when a controller is in use. | Linux, Windows (x64), Android (not Android TV, which always uses it), Apple |
| Show it | With a controller | Always keeps the console without a pad, for a docked phone or tablet. | Linux, Windows (x64), Android, Apple |
| Background | Violet | The console's backdrop colour: 20 dark fields, then 16 pale ones. Eclipse is true black for OLED screens. | Console; Apple TV Settings |
| Reduce motion | Off | Stops the console's moving backdrop. Apple follows the system setting instead, and so do Windows and Linux desktops that report one (GNOME, KDE); the row then hides. | Console on Linux, Windows, Android |
| Reduce interface resolution | On for Android TV, off on phones | Draws the console at 1080p and lets the screen scale it up, for slow 4K TV boxes. The stream isn't affected. | Android console |
| Library view | Shelf | How a host's library opens. | Console, Apple |
| Follow system theme | On | The app and console follow omarchy-theme-set. Hosts in the Omarchy menu adds your hosts to the Omarchy menu. See Omarchy. | Linux on Omarchy, console |
Overlay
| Setting | Default | What it does | Where |
|---|---|---|---|
| Statistics overlay | Normal | Off, Compact, Normal or Detailed: the level a stream starts at. Change it live in-stream; see Stats. | All |
| Advanced statistics | Off | Off shows the figures Moonlight's overlay also shows. On shows Punktfunk's capture-to-screen timings. | All |
| Statistics position | Top left (Apple: top right) | The overlay's corner. | All |
| Statistics size | 100 % | 75 % to 200 %, on top of your display's scaling. The overlay only. | All |
| Exit hint | On | Shows how to leave for a few seconds when a stream starts. | All |
Settings that are facts about your device
These describe the device you hold, so a preset can't change them and they don't show while you edit one: Video decoder, GPU, the Speaker and Microphone devices, Use controller, Auto-wake on connect, Start in, Show advanced, the Overlay rows but Statistics overlay, and the Interface rows.
Share clipboard isn't in Settings: it's per host, on the host's page or in its edit sheet. See Shared clipboard.
When the client and the host disagree
The host answers each request before your decoder and speakers are set up, so you always get what it really sends.
| You ask for | The host |
|---|---|
| A resolution and refresh rate | Builds a display at exactly that mode. A host streaming a real monitor keeps that monitor's mode and your device scales. A size the encoder can't take fails the connect. |
| A bitrate | Clamps it to 500 kbps – 8 Gbps. PyroWave ignores it. |
| A PyroWave quality | Holds it between 0.5 and 2 bits per pixel, under its PyroWave bitrate cap. A host that doesn't read it uses its own PyroWave quality. |
| A codec | Uses it if it can encode it, otherwise HEVC, AV1, H.264 in that order. |
| 10-bit HDR | Sends it only for HDR content on an encoder that can; otherwise 8-bit SDR. |
| 4:4:4 | Sends it only when every requirement is met; otherwise 4:2:0. |
| A channel count | Rounds it to 2, 6 or 8. |
| A gamepad type | Uses it; a type it can't create becomes an Xbox 360 pad. |
| A compositor | Treats it as a hint and picks its own when that one isn't there. |
Linux on ARM
What the Punktfunk app decodes in hardware on ARM Linux devices — Steam Frame, Raspberry Pi 5, Rockchip boards, Snapdragon laptops, Apple silicon — and what it decodes on the processor instead.
Presets and links
How settings presets override your client defaults per host or per connect, and how punktfunk:// links start a stream from a shortcut, a script or a browser.