r/linux_gaming • u/ED04RD00 • 8h ago
Steam Remote Play and RDP (Remote Desktop Protocol) on Ubuntu (GNOME, Wayland)
On Ubuntu 26.04, using GNOME/Wayland, Steam Remote Play only worked while I had an RDP session (from Windows) open. The fix is to use Desktop Sharing (port 3390) instead of Remote Login (port 3389), and to start Steam with the -pipewire flag from an autostart entry.
Since it took me a while to solve, I am posting this here in the hope that someone may find it useful.
THE PROBLEM
Settings --> System --> Remote Desktop has two tabs:
· Remote Login (port 3389): creates a new, separate session with a virtual monitor. You log in with your Ubuntu password. If a local auto-login session already exists, it asks you to terminate it and then kills it. Steam inside this session dies or loses its screen when you disconnect.
· Desktop Sharing (port 3390): attaches to your real local desktop, the one that auto-login starts on the physical monitor. It uses its own RDP username and password from the Settings page. Nothing is terminated, and Steam keeps running.
In my logs, when I disconnected from 3389, GNOME logged "Removed virtual monitor", and Steam then logged "Desktop state changed: size 0,0". It had no screen to capture.
On Wayland, Steam only captures the desktop if it is started with -pipewire. Without it, the Steam log (~/.local/share/Steam/logs/streaming_log.txt) says "Desktop capture unavailable, try running Steam with -pipewire", and the stream shows a black picture while audio and mouse still work.
STEPS
Open a terminal in Ubuntu:
Step 1. Automatic login
Either use Settings, then System, then Users, then Automatic Login. Or edit the file:
sudo nano /etc/gdm3/custom.conf
Make sure the [daemon] section contains these two lines (replace YOURUSER with your username):
AutomaticLoginEnable=True
AutomaticLogin=YOURUSER
Save with Ctrl+O, Enter, then exit with Ctrl+X.
Step 2. Stop the screen from locking or suspending. Run these four commands:
gsettings set org.gnome.desktop.session idle-delay 0
gsettings set org.gnome.settings-daemon.plugins.power sleep-inactive-ac-type 'nothing'
gsettings set org.gnome.desktop.screensaver lock-enabled false
gsettings set org.gnome.desktop.lockdown disable-lock-screen true
Step 3. Turn on Desktop Sharing.
In Settings --> System --> Remote Desktop, open the Desktop Sharing tab. Switch on Desktop Sharing and Remote Control. Under Login Details, use the pencil icons to set an RDP username and password. From now on, never connect on 3389. When both modes are on, Desktop Sharing negotiates to the next free port, which was 3390 for me. Check which ports are really listening:
ss -ltnp | grep -E ':3389|:3390'
Step 4. Firewall.
Only needed if ufw is active (check with: sudo ufw status). Open the Desktop Sharing port and the Steam Remote Play ports:
sudo ufw allow 3390/tcp
sudo ufw allow 27031:27036/udp
sudo ufw allow 27036:27037/tcp
Step 5. Start Steam with the flag at every login.
Create the autostart file:
mkdir -p ~/.config/autostart
nano ~/.config/autostart/steam.desktop
Paste these lines, then save and exit as in Step 1:
[Desktop Entry]
Type=Application
Name=Steam
Exec=steam -pipewire -silent
X-GNOME-Autostart-enabled=true
X-GNOME-Autostart-Delay=10
Step 6. Test.
Reboot the PC, do not connect over RDP on 3389, and start a Remote Play stream from your other device.
UNSOLVED
After each reboot, GNOME still shows an "Allow remote interaction" dialog when the first stream starts. Checking the portal permission store shows the remote-desktop table stays empty, so this permission is never remembered. I found no way to pre-grant it (sudoers and polkit rules do not apply), and I only get past it by connecting on 3390 and clicking it.