Getting Started With The Steam Deck Desktop

By

What is a bigger deal, that Valve’s Steam Deck plays Elden Ring from day one (and even better than on Windows!), or that it is a full-fledged Linux computer in handheld form? Okay, probably Elden Ring, but I know many current or prospective Linux users are excited to see what they can do with a powerful mini Linux computer.

Admittedly, I’ve mostly been doing the whole Elden Ring on the Deck thing, to my own surprise, but I did pick up a dock (extra port dongle) to explore the desktop mode more. I still haven’t had a chance to do a lot of hacking on it, but let me share what I’ve tried and learned so far. And if you have any particular questions or things for me to try, please let me know in the comments or in our Matrix room.

Desktop Basics

Dropping into the desktop mode is easy, either from holding down the power button to access the boot/reboot/etc. menu, or from the Steam button menu. It takes just a couple of seconds to switch over, and you’ll want to wait for Steam (the regular desktop version) to load in the background to have full use of the Deck controls. This seems to be starting a new session, as returning to the main Deck interface doesn’t save where you were before you left for the desktop.

Jurassic Park, of course.

By default you’ll see it is quite familiar looking for any modern desktop, with a bar at the bottom for the application menu, shortcuts, and tray. The right trackpad as a mouse is easy, with right and left triggers (and right and left trackpad pushes) as left and right mouse buttons (so they are flipped, the main left click on the usually dominant right hand). The touchpads work well for mousing around, clicking, dragging, all of that.

Pressing Steam+X brings up the on-screen keyboard. As we covered recently, this has been updated to be the same keyboard as in the non-desktop mode, which means it now takes up half the screen, whichever is not where your mouse is (a downside, but it is more functional with dual touchpad input). I could see the dual touchpad typing being quicker with practice, but at first found myself needing to reposition my thumbs on the pads (smaller hands or wrong grip?). Thankfully that has been allevaited in recent updates. Touch typing can work, but I find the response not that great if you try to type even at a moderate speed. That could be because the touchscreen on the Deck is not nearly as responsive as your typical mobile device.

It is also clear the default keyboard isn’t meant for something like even basic terminal use: there are no arrow or Ctrl key, the Tab key doesn’t lead to any completion, and so on. Setting a different controller configuration would help in adding some needed keys and is easy to do from the Steam settings, under Controller. There are some nice community configurations for desktop usage with the Steam Controller, but the interface isn’t showing which keys to load the configuration after previewing (press X). With that it quickly becomes much more functional.

Returning to the Deck’s main Steam interface can be done from a shortcut on the desktop. The first time I tried this I kept clicking because nothing seemed to happen, before it was suddenly back to Deck’s Steam interface. Since then it has been quicker, but without any real indicator anything is happening (I think I see a small window flash for a second). Switching back to the desktop mode later will pick up where you left off, rather than starting from a new session. However, I did notice that Syncthing, which should have kept running in the background, had been killed in the meantime. I’m not sure why, perhaps the Deck is set up to only keep some (system?) services running when not in desktop mode.

As has been extensively covered, by default SteamOS on the Deck has a read-only system, meaning you can’t just use Arch’s pacman and the AUR to install whatever you want. Instead, you use KDE’s Discover application as a nice frontend for Flatpak applications via Flathub (the main repository). This works well and really has most of what you could want, as far as I could see: office and productivity programs, chat (Discord, Element), media players (Spotify and VLC for example), emulators, other game launchers, etc., although there are still some bigger missing pieces you might want, like Lutris. In my brief tests I didn’t see a need to modify permissions for Flatpaks, though do note that Flatpaks run in a container and usually are quite isolated from your system. If need be, you can modify their permissions manually or with an application, like Flatseal.

A nice feature is that you can add any application to Steam as a “non-Steam game” (just open up Steam and look for “add a game” in the lower left) to be able to launch it easily from the main interface. You can then keep that running and switch back to launch a game, keeping both running and switchable. I did this to have a Discord voice chat, through the unofficial Flathub Flatpak version, going while playing, with no hiccups at all. As a bonus, the built-in mic/audio settings work well for not sending your game audio or causing any echos.

So you can be up and running with your desktop needs pretty quickly. Or as quickly as you can type with the on-screen keyboard.

Which brings me to what you’ll likely want for any prolonged desktop usage (or else setting up something like ssh, which will require overriding the read-only defaults): a USB-C dock. A Bluetooth or USB keyboard and mouse would be helpful, on their own or with a dock, but I think you might as well get a dock that has everything you could want: HDMI and/or DisplayPort, USB ports, SD card reader, power delivery (PD, i.e. uses your charger to pass power to the Deck and accessories), and Ethernet. The first one from TOTU I got didn’t give me 4k for my monitor over DisplayPort, whether because of the dock or some Deck bug, but the second one from Lasuney worked perfectly. So you may want to read some reviews or try out a few docks, especially if you have specific or quirky hardware (like my older DisplayPort monitor).

With my dock/dongle squared away, the desktop works nicely as mirrored, extended, however you want to arrange the screens. Unplugging or replugging the monitor also works as expected. And yes, I can use that 4k monitor to watch 4k60p YouTube without any problems either.

And with that you can plug-in just your dock to the sole USB-C port on the Deck and have the full computer experience. It basically works as you’d expect any computer to, which is a good thing.

Some Details and Tips

The overall experience is all well and good, I don’t have much to say there. If you are curious if you can find the software you need, just search on Flathub. Likely you’ll find what you need, and if you are more a developer type opening up the read-only file system is just a short command away (you’ll need to set a password first, in order to use sudo).

Here are some details that I was curious about when starting out. First, what exactly is the partition layout of the Deck? A simple lsblk answers that:

$ lsblk -o name,mountpoints,label,size
NAME        MOUNTPOINTS               LABEL      SIZE
mmcblk0                                        238.8G
└─mmcblk0p1 /run/media/mmcblk0p1               238.7G
nvme0n1                                        238.5G
├─nvme0n1p1                           esp         64M
├─nvme0n1p2                           efi         32M
├─nvme0n1p3                           efi         32M
├─nvme0n1p4 /                         rootfs       5G
├─nvme0n1p5                           rootfs-A     5G
├─nvme0n1p6 /var                      var        256M
├─nvme0n1p7                           var        256M
└─nvme0n1p8 /var/tmp                  home     227.8G
            /var/log                           
            /var/lib/systemd/coredump          
            /var/lib/flatpak                   
            /var/lib/docker                    
            /var/cache/pacman                  
            /srv                               
            /root                              
            /opt                               
            /home

Here you can see that there are two sets of boot EFI, root, and /var partitions. Note that the home partition also has mountpoints for parts of /var that will be persistent in changes to the system, like logs and of course Flatpak (i.e. anything installed with Discover). For those unfamiliar with Flatpak, everything needed for an application to run is kept contained (literally, it runs in a container) and separate from the actual system, like in /var/lib/flatpak.

(Interestingly, there is a mount for where Docker would keep files, which would be persistent as it is not part of the rootfs system partition. However, there is not a Docker system service installed by default from what I could tell.)

How about dual booting? While much of the focus on this front has been for installing Windows, I can think of other reasons you might want another Linux distro or configuration at hand. For one, currently the Deck by default has no lock screen, disk encryption, or really any security for whatever is on there. Though there is a password you can set in the BIOS and some community data digging hints at a lock screen. If you need to modify the system at all, you can expect to lose your changes (or have to redo the same process) on some system updates. So, it might be nice if you plan on using the Deck hardware as a computer to have your own setup.

Dual booting from the SD card or an external device is easy: just hold Volume Down when you power on the Deck and you’ll get to the Boot Manager. Then you can select what you want to boot for. That’s it. If you want to have dual boot on the internal drive or modify the default boot menu, you’ll have to do that on your own (Valve has noted a dual boot wizard coming in the future though).

I tried external booting with, of course, a GNU Guix USB drive. I just used a default desktop template (Gnome, etc.) to create the live USB, but could have also used the very same configuration I use for my own desktop. I wanted to see how the Deck fares with the Linux-libre kernel (no firmware blobs): as I expected it booted with the nomodeset kernel parameter. However, without the AMD firmware I don’t expect much from the GPU, and in fact Gnome didn’t want to rotate the display. Wireless will also be unsupported. But it boots and lets me use that USB image with the Deck hardware, or connected to say a monitor and keyboard for a fuller experience.

The UEFI (aka BIOS) is also easy: just hold Volume Up while pressing the power button. There are some hardware tweaks in here, though much is also exposed through Steam on the Deck already.

Use Cases and What’s Next

To be frank, I’m not sure of the use cases for the Steam Deck as a full computer for most people (including myself). The problems or barriers I see are similar for any extra device in the age of smartphones and laptops.

If you want the Deck as a full computer, likely you’ll want a keyboard at the very least. Sure, you can have a small portable (or rollable!) keyboard and just come out ahead of a small laptop in terms of size. But then you might as well just use that keyboard with your phone (or tablet) you always have around. Then you don’t have the same gaming ability, other than streaming, of course. For casual use, say browsing online, some light desktop work…again, your regular mobile device will probably do just fine as well.

The best scenario I can think of is having a monitor, keyboard, etc. on a desk that you plug in the Deck and instantly have your computer. So perhaps a light office set up where you don’t have (or like) a desktop already. Maybe while traveling, but again, you are likely held back by needing at least a keyboard. At that point a laptop makes more sense for general usage. Still, there are probably some interesting use cases people will have where being able to just hookup the Deck to a TV or projector and have your computer at your fingertips will be helpful. With some modifying of the system it might make for a handy portable server or maybe some cases where you really need more of a computer handy than a locked down mobile device.

So I think it comes down to how gaming fits in with what else you need to do, along with being able to use the Deck not tethered to a desk or laptop form factor. I’ll admit that this could very much be due to how I find the current on-screen keyboard lacking (in responsiveness, in the time it takes to do anything more than type a few little things) and how much I use the keyboard for my normal day-to-day usage. As in that’s almost all I use. I’m a tiling window manager, Emacs, non-typical desktop user, probably closer to developer and “power” users. But really for any “productivity” type stuff, you do need to type more than just a name in character creation.

This is not to say the Deck isn’t worth it to consider or use as a more than just a gaming handheld. Especially if your other hardware isn’t as powerful or portable. It is a serious beast in a relatively small form and could easily be a springboard into Linux and fun handheld hacking for anyone. I could see myself traveling with the Deck when I wouldn’t normally bring a laptop and I might see about an ultra portable keyboard to avoid having to type anything on my phone (and have the full Linux power at hand).

And I’m especially excited by what we’ll be able to do having a fully open system rather than a locked down console. Already some things are just easier than what I imagine you have to do on a console, like getting files back and forth with other devices. Since I already use Syncthing, I just installed Syncthing-GTK. I was confused at first as in most distros this is just the frontend, not the Syncthing service you need, but it is all together here. Added the device to my others and shared a folder, instantly being able to transfer say savegames that aren’t syncing or files I want to use on the Deck. Or for that lsblk output above, just pipe that to a file in the synced folder.

In short, I’m excited to see what people make of the Deck, beyond a very capable handheld gaming device. It does what it was designed to do well, but its real power and possibilities might be yet to come.