So as I think I’ve mentioned before on this blog, whenever I want to do any serious rearranging of my mods on my Steam Deck, it’s awkward to do so directly on the Deck.
Problem at hand
Here are the reasons why trying to directly manipulate the Deck’s desktop is problematic for me.
For one thing, the screen is quite small, and my eyes aren’t as young as they used to be. I do sometimes have trouble reading things on that little screen.
For another, I do have a small Bluetooth keyboard that I use to interact with the device in Desktop mode on a fairly regular basis. This thing has a trackpad on the right end of it, and left and right click buttons as well, so I have mouse control. But I’ve also seen that the Deck has a devil of a time actually maintaining a connection to the damn thing. It’ll cut out on me for no apparent reason. I keep having to toggle back and forth between the 1, 2, and 3 buttons that are supposed to control how many pairings the keyboard can have.
I don’t know if this is the fault of the keyboard or the fault of the Deck. But I also know that I’ve had trouble with the Deck maintaining a Bluetooth connection to my gaming headset and my Nintendo Switch Pro controller, too. So at the moment I’m inclined to believe that this problem is Deck-side, not keyboard-side.
Which means that even with the keyboard in play, if I want to do any serious mod rearranging or any other kind of system administration on the device, it’s irritating and awkward.
The answer to this problem, therefore, was to try to find a way to remote into the Deck’s desktop mode from my computer.
I had been using an app called AnyDesk to do this. However, AnyDesk recently went to a subscription model, and the last version of it I updated to throttled how long it would let you keep a connection open if you’re not a paying subscriber. I’ve long been frustrated with how every little bit of software on the planet now wants to make you to subscribe to use it; that shit adds up, really fast. And given that I’m now unemployed and on a budget, I need to care more about how much money I spend every month.
So subscribing to AnyDesk was not an option. I needed an open source solution.
Fortunately, Linux has one. I’d already installed a Remmina client on the Deck. And on my MacBook, I have an Ubuntu Linux VM immediately available, which also has a Remmina client. So what I wanted to do was basically use Remmina in the Linux VM to open a VNC connection to the Deck.
Setting up VNC
This required me to set up the Deck to accept incoming VNC connection requests. And that, in turn, required me to do the following:
- Set a password for the Deck’s default user
- Install x11vnc on the Deck, and set a password for the VNC server
- Launch the VNC server
- Fire up a VNC connection in Remmina on the VM on my computer, including giving it the Deck’s user password and VNC server password
This worked beautifully. And now I have the ability to connect to the Deck as I want. 😀 Behold, my Deck’s desktop as viewed from Remmina, in the Linux VM on my Mac:
My main use case for this is, if I want to install new mods in Vortex, and/or create new mod profiles for games I have installed. (Right now, that’s Skyrim and Oblivion.)
The main resource I used for getting this done was the instructions on this page:
This was super helpful. <3 And in my screenshot above, you can see the various icons on my desktop that resulted from following these instructions.
Many thanks to Kate for the sharing of this info!
Setting up sshd
However, that’s not the only use case I have for doing stuff on the Deck, so I also set up sshd so that I can just shell into the thing for tasks that don’t require GUI access. Like, say, editing a config file right quick.
So I also followed (most of) the instructions on this blog post as well:
I used this page for setting a default password on my Deck (which I needed to do anyway to get VNC connectivity working), but also for launching sshd, enabling it to run on startup, and also securing it so that you can’t connect to my device as root. And that it will only accept connections from my known good ssh keys on my computer.
Many thanks to Seth for this info as well, since this was also super helpful.
Now I can connect to the Deck either with VNC or with ssh. VNC I can do with the Remmina client into the Linux VM I have set up on my Mac; I don’t yet have a viable way to do this natively in macOS, just because I don’t have a known good VNC client. But doing it in the VM will be fine.
SSH connections, on the other hand, I can do straight out of the command line in macOS, so I don’t have to fire up a VM for that. Which, for something quick and simple like a file edit, is all I need.
Very happy with getting this problem solved, finally!
In addition to the authors of the two links above, I’d also like to give thanks and a shout out to all who answered the thread I posted about trying to solve this on Mastodon, which was here:
A few other solutions were proposed, so I’ll briefly summarize those here, in case anyone else who wants to go down this particular rabbit hole would like other options to consider:
- Installing TeamViewer (not confirmed whether this is doable on the Deck)
- Another blog post detailing steps for setting up ssh and/or sftp
- Warpinator for file transfers (can confirm this actually works, I do have Warpinator on my Deck and the Windows port of same on my Windows VM, though I myself just use Dropbox to chuck files back and forth between my Deck and my computer, because my laptop’s a Mac and this means I don’t have to fire up the Windows VM)
- PuTTY if all you want is an SSH client (can confirm this is also good, I’ve used PuTTY before but not in this context, not using it now because again, my computer is a Mac; I have SSH right in its command line. But this is a good idea if your main computer is a Windows box)
- Reddit thread about installing NoMachine (cannot personally confirm this, I didn’t pursue this since I got Remmina working)
Now, onward to hopefully solving the Bluetooth problem I mentioned above!