Skip to content

hikaps/couchplay

Repository files navigation

CouchPlay

CouchPlay

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.

Screenshots

CouchPlay Home

CouchPlay Session Configuration

CouchPlay Split-Screen Gaming

Usage

Creating a Session

  1. Open the New Session page from the sidebar.
  2. 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
  3. Configure each player instance: pick a launcher (Steam, Steam Big Picture, or Heroic), then set resolution, refresh rate, and scaling options.
  4. Click Start Session to launch all instances through Gamescope.

Assigning Controllers

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.

Profiles

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.

Managing Users

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.

Features

  • 🎮 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.

Quick Install (Linux x86_64)

Install the latest release with a single command:

curl -fsSL https://raw.githubusercontent.com/hikaps/couchplay/main/scripts/install.sh | bash

Requirements: Linux x86_64, root privileges (sudo). This downloads and installs the latest release from GitHub, including the privileged helper service.

Installation (Bazzite / Fedora Atomic)

CouchPlay uses a privileged helper to manage devices and users.

  1. Download the latest release tarball from the Releases page.
  2. Extract the archive:
    tar -xJf couchplay-x86_64.tar.xz
    cd couchplay-x86_64
  3. Install the helper service (requires sudo):
    sudo ./install-helper.sh install
  4. Run the application:
    ./bin/couchplay

Uninstallation

sudo ./install-helper.sh uninstall

Flatpak Installation

  1. Download the .flatpak bundle from the Releases page.
  2. Ensure the runtime is available (Flathub provides org.kde.Platform 6.10):
    flatpak install flathub org.kde.Platform/x86_64/6.10
  3. Install the Flatpak:
    flatpak install --user couchplay.flatpak
  4. 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.

Development

Prerequisites

  • CMake 3.20+
  • Qt 6.5+
  • KDE Frameworks 6 (Kirigami, I18n, Config, CoreAddons)
  • Gamescope
  • PipeWire (devel headers)
  • Polkit (devel headers)

Building

cmake -B build
cmake --build build

Running Tests

ctest --test-dir build --output-on-failure

AI Disclosure

This project was developed with assistance from AI tools for code generation, documentation, and debugging.

License

GPL-3.0-or-later

About

Split-screen any game on Linux — launch multiple Gamescope instances with isolated controllers, audio, and user accounts

Topics

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors