# punktfunk host config for Bazzite (~/.config/punktfunk/host.env). # # The compositor + input backend are AUTO-DETECTED per connect from the ACTIVE session: the host # follows the box as you flip between Steam Gaming Mode (gamescope — a managed session at the # CLIENT's resolution) and a KDE/GNOME Desktop (KWin/Mutter virtual output at the client's mode). # So nothing here forces a backend, and no session anchors are needed: a `systemctl --user` # service inherits the correct XDG_RUNTIME_DIR and the host derives the bus from it. (Keys are # CASE-SENSITIVE — use the exact uppercase names.) PUNKTFUNK_VIDEO_SOURCE=virtual # GPU zero-copy capture (dmabuf -> CUDA -> NVENC) is ON by default and auto-falls back to CPU if # unavailable. No need to set it. Set to 0 only to force the CPU path. # PUNKTFUNK_ZEROCOPY=0 #RUST_LOG=info # --- Optional overrides (default is active-session auto-detection) --- # Force a specific backend for testing (skips auto-detect + env retargeting): # PUNKTFUNK_COMPOSITOR=kwin|mutter|wlroots|gamescope # PUNKTFUNK_INPUT_BACKEND=libei|wlr|gamescope|uinput # # GAME MODE = ATTACH (the box owns its session; the host follows). The box decides whether it's in # Steam Gaming Mode or a Desktop — you switch with the normal Steam UI / "Switch to Desktop". The # host just ATTACHES to whatever's live and captures it; it never tears the session down. So # switching Desktop<->Game is rock-solid, and when you disconnect the box STAYS in its current # mode — reconnecting drops you right back where you were. On a resolution mismatch the host # restarts the box's own game-mode session at the CLIENT's resolution (a foreign/bare gamescope # instead streams at its own mode). PUNKTFUNK_GAMESCOPE_ATTACH=1 # # Opt OUT to the MANAGED model instead (host tears the box's gamescope down on connect and launches # its OWN at the CLIENT's exact resolution; restores on a debounced idle). Client-mode-following, but # it does not coexist with a box-owned game-mode session — pick one: # PUNKTFUNK_GAMESCOPE_MANAGED=1 # (and remove PUNKTFUNK_GAMESCOPE_ATTACH above) # # Follow a Gaming<->Desktop switch MID-STREAM (rebuild the backend in place, no reconnect). This is # ON BY DEFAULT on Bazzite/SteamOS (the host detects the platform); set =0 to disable it: # PUNKTFUNK_SESSION_WATCH=0 # # HEADLESS GAME MODE: on a box with no display attached, Bazzite's "Switch to Game Mode" normally # crashes (gamescope's DRM backend has no panel to drive). The host package ships # /etc/gamescope-session-plus/sessions.d/steam, which auto-falls-back to gamescope's HEADLESS backend # when no display is connected — so game mode boots offscreen and streams, with no config here. It's a # no-op on display-attached boxes. (The host then auto-detects Gaming and streams it.)