3

I have various screenshots and emulator save files on my Steam Deck that I want to transfer to my desktop. My current solution is to use Warpinator, but it requires me to close the game I'm playing and exit to desktop mode whenever I want to transfer files, which is a bit cumbersome. I've also tried uploading screenshots through Steam to transfer them, but this doesn't work for non-steam games.

How can I transfer files from my Steam Deck to a PC without having to switch from Gaming Mode to Desktop Mode?

3 Answers 3

2

If you don't mind using terminal, you can spin up ssh server on Steam Deck and access it with any of dozens compatible tools, for example, command line scp which is now available even on Windows.

Enable SSH server:

  • on your Steam Deck go to Desktop mode, open Konsole app, which is built-in terminal;
  • for the next step you need to have "sudo" permissions, which will require you to set up a password for default account (deck usually), so configure it if you haven't already;
  • run sudo systemctl enable sshd to enable ssh server on start and you can run sudo systemctl start sshd to start it right now;
  • you can now return to gaming mode.

Browse files

Then on your other machine you can connect to Steam Deck even when it's in Game Mode. I'm on Mac, so I already have scp and ssh pre-installed. I can use ssh to connect to Steam Deck and browse files:

 ssh [email protected]
[email protected]'s password:
Last login: Wed Feb 21 14:06:30 2024 from 192.168.0.106
(deck@steamdeck ~)$ cd GD_Saves_Backup/
(deck@steamdeck GD_Saves_Backup)$ ls -la
total 44
drwxr-xr-x 10 deck deck 4096 Jun 19  2023 .
drwx------ 43 deck deck 4096 Feb 21 14:11 ..
drwxr-xr-x  3 deck deck 4096 Jun 15  2023 save_14_jun_2023
...

where [email protected] is in user @ hostname format. If for some reason steamdeck.local is not resolved, you will have to find your local network ip address assigned to Steam Deck and use it instead. You will also have to provide user password, it's the same password used with sudo before.

Copy

Then once I know what I want to copy, I'm using scp to copy files over:

 scp -r [email protected]:/home/deck/.local/share/Steam/userdata/111238817/760/remote/739630/screenshots .
[email protected]'s password:
20230430224004_1.jpg                                                                                                                                                      100%  533KB 611.9KB/s   00:00
20230419235222_1.jpg                                                                                                                                                      100%  756KB   2.0MB/s   00:00
...

Here command's format is scp SOURCE DESTINATION, source is on remote machine, so I have to provide user and hostname for it. Then regular folder path is added. Destination is on local and I use . to copy into the current folder. -r is recursive flag, I need it to copy entire folder instead of individual file.

1

Expanding on arghtype's answer, you can setup an SSH server on your Steam Deck then mount your Steam Deck as a network drive on a Windows PC. I followed a video guide from MonroeWorld for this.

To summarize their video:

  • Steam Deck instructions
    • On your Steam Deck, go to Gaming Mode, open System > About and note your Hostname. If the name is something other than "steamdeck", note it down for later.
    • Go to desktop mode and open the Konsole
    • Enter whoami and note the user name that appears. If it is anything other than "deck", note it down for later.
    • Check your sudo password by entering passwd. If one has not been set, set it now and note it down.
    • Enter sudo systemctl enable sshd then enter your sudo password.
    • Enter sudo systemctl start sshd.
    • Enter sudo systemctl status sshd to confirm the server is running.
  • Windows PC instructions
    • Open CMD as an Administrator.
    • Enter winget upgrade winget.
    • Enter winget install WinFsp.WinFsp
    • Enter winget install SSHFS-Win.SSHFS-Win
    • Download a batch script for mounting the drives. (Code provided in a block below in case link goes away)
    • Edit the batch script to replace some lines.
      • Replace "Set Your Password Here" with your Steam Deck sudo password
      • Replace "Set Your SD Drive Here" with the GUID for your steam deck's SD card. (Found under run/media/deck)
      • If your steam deck has a different hostname, replace @steamdeck with @<your_host_name>
      • If your steam deck had a different username, replace user:deck with user:<your_deck_user_name>
    • Run the bat file to mount your drives.
@echo off

echo Make sure you have installed SSHFS and your Deck is on and connected to the network ...
pause

set drive=Set Your SD Drive Here
set pass=Set Your Password Here

echo Deleting existing drives ...
net use X: /delete
net use Y: /delete
net use Z: /delete
pause

echo Setting your connections now ...
echo Setting X: as HOME
net use X: \\sshfs.r\deck@steamdeck\home\deck /user:deck %pass% /persistent:Yes
echo Setting Y: as SD Card
net use Y: \\sshfs.r\deck@steamdeck\run\media\deck\%drive% /user:deck %pass% /persistent:Yes
echo Setting Z: as ROOT
net use Z: \\sshfs.r\deck@steamdeck /user:deck %pass% /persistent:Yes
pause

1

I like Syncthing. It's great for syncing folders across systems. If you delete files on one side they disappear on the other side. I had some trouble getting the Flatpak version to start on system boot, but I've had better luck with the Intel/AMD (64‑bit) version on their downloads page. You'll need to set up a systemd service to boot it up on system boot, which they explain how to handle in their docs.

Note: I find it much easier to work on my deck via SSH from my home computer, rather than needing to use the CLI in desktop mode. I've seen some people mention using sshfs to mount the deck filesystem as an external drive, though I haven't tried it myself.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.