-
-
Notifications
You must be signed in to change notification settings - Fork 15
Description
Is this a new feature request?
- I have searched the existing issues
Wanted change
Currently, virtual touchscreen gamepad controls are only available for "viewer" role clients (Player 2-4 via sharing links or ?token= with "role": "viewer", "slot": N).
The primary client with "role": "controller" can only use:
- Keyboard/mouse
- Physical Bluetooth/USB gamepad
Reason for change
When using a mobile device (tablet, phone) as the primary and only client to play games, there's no way to get both:
- ✅ The video stream
- ✅ Virtual touchscreen gamepad controls
The current workaround requires two devices/connections:
- Open a "controller" session on another device (PC, hidden tab)
- Open a "viewer" session on mobile to get touchscreen controls
This is impractical for single-user mobile gaming scenarios.
Proposed code change
Add an option to enable virtual touchscreen gamepad for the primary client. Possible implementations:
Option A - New environment variable:
SELKIES_ENABLE_CONTROLLER_TOUCHPAD=true
Option B - New role in Control Plane API:
{"role": "controller", "slot": 1, "enable_touch_gamepad": true}Option C - Automatic detection:
Enable touchscreen controls automatically when the client is detected as a touch device.
Use Case
- Playing emulator games (Citron, RetroArch, etc.) on a tablet without a physical controller
- Mobile-first gaming setups
- Situations where carrying a Bluetooth controller isn't practical
Environment
- Container:
lscr.io/linuxserver/citron:latest(based on baseimage-selkies) - Client: Mobile browser (Android/iOS)
- Setup: Single user, no need for multiplayer sharing
Additional Context
The touchscreen gamepad UI already exists and works great for viewer/player2-4 sessions. This request is simply to make it available for the primary session as well.
Thank you for the amazing work on Selkies! 🎮
Metadata
Metadata
Assignees
Labels
Type
Projects
Status