Split-screen gaming manager for Linux, designed for KDE Plasma and Gamescope. CouchPlay enables multi-seat gaming sessions on a single PC by managing input device assignment, multiple Gamescope instances, and audio routing.
- Open the New Session page from the sidebar.
- Choose a screen layout that fits your setup:
- Side by Side — splits the screen horizontally
- Top and Bottom — splits the screen vertically
- Multi-Monitor — dedicates one display per player
- Configure each player instance: pick a launcher (Steam, Steam Big Picture, or Heroic), then set resolution, refresh rate, and scaling options.
- Click Start Session to launch all instances through Gamescope.
Connect your gamepads, then use the Auto-Assign Controllers button to let CouchPlay distribute them across player instances. You can also drag and drop devices for manual assignment. Each controller gets locked to its assigned instance so inputs don't leak between players.
Save a session configuration as a profile to reload it later without reconfiguring everything. Profiles are stored as JSON files in ~/.local/share/couchplay/profiles/ and can be loaded from the session page.
CouchPlay creates temporary Linux user accounts so each player gets isolated save data and settings. Open the Users page to view and manage these accounts. The helper service handles the privileged operations behind the scenes.
- 🎮 Input Isolation: Assign specific gamepads/keyboards to specific player instances.
- 🖥️ Multi-Instance: Run multiple games simultaneously using Gamescope nested compositors.
- 🔊 Audio Routing: Route game audio to specific outputs (via PipeWire).
- 👤 User Management: Automatically manages temporary user accounts for isolated save data.
- 🐧 Atomic-Ready: Designed for immutable distributions like Bazzite and Fedora Silverblue.
Install the latest release with a single command:
curl -fsSL https://raw.githubusercontent.com/hikaps/couchplay/main/scripts/install.sh | bashRequirements: Linux x86_64, root privileges (sudo). This downloads and installs the latest release from GitHub, including the privileged helper service.
CouchPlay uses a privileged helper to manage devices and users.
- Download the latest release tarball from the Releases page.
- Extract the archive:
tar -xJf couchplay-x86_64.tar.xz cd couchplay-x86_64 - Install the helper service (requires sudo):
sudo ./install-helper.sh install
- Run the application:
./bin/couchplay
sudo ./install-helper.sh uninstall- Download the
.flatpakbundle from the Releases page. - Ensure the runtime is available (Flathub provides org.kde.Platform 6.10):
flatpak install flathub org.kde.Platform/x86_64/6.10
- Install the Flatpak:
flatpak install --user couchplay.flatpak
- Install the helper service (required for device management):
flatpak run --command=bash io.github.hikaps.couchplay -c "/app/share/couchplay/install-helper.sh export" sudo ~/.local/share/couchplay/install-helper.sh install
Note: The tarball installation method above is also available if you prefer it or your distribution doesn't support Flatpak.
- CMake 3.20+
- Qt 6.5+
- KDE Frameworks 6 (Kirigami, I18n, Config, CoreAddons)
- Gamescope
- PipeWire (devel headers)
- Polkit (devel headers)
cmake -B build
cmake --build buildctest --test-dir build --output-on-failureThis project was developed with assistance from AI tools for code generation, documentation, and debugging.
GPL-3.0-or-later


