IDE on Steam Deck

In case you need/want to do development on a Steam Deck, which runs a fork of Arch Linux, named Holo.

Set password for deck user

The built-in user, named deck, has no password. (A null password, not a blank/empty one.) Unfortunately, you need to use sudo for some stuff, and for that you need to set a password. It is only used on the Desktop. Straightforward though

passwd

Add packages

Some tooling needs Python's serial. xsel pushes stuff in and out of the clipboard. These are added with the package manager, after initializing the keys and indexes. The core file system is also set as read-only, so that must be disabled temporarily

sudo steamos-readonly disable
sudo pacman-key --init
sudo pacman-key --populate archlinux
sudo pacman-key --populate holo
sudo pacman -S python-pyserial
sudo pacman -Fy
pacman -F xsel  # what's the package name? The obvious one
sudo pacman -S xsel
sudo steamos-readonly enable

Install IDE

The AppImage version seems a little neater. There's a read-only /opt in the root directory. To avoid modifying the core file system, the .AppImage can be copied into a new directory in ~/.local, which already contains all the Steam stuff, and more.

cd ~/.local
mkdir opt
cd opt
mv ~/Downloads/arduino-ide_2.3.4_Linux_64bit.AppImage .
chmod +x arduino-ide_2.3.4_Linux_64bit.AppImage
./arduino-ide_2.3.4_Linux_64bit.AppImage
Extract app icon

An .AppImage mounts itself to run, and so its contents can be accessed. (One advantage of installing the ZIP version instead: this step is simpler.) The app icon is used when adding the IDE to the list of Applications for the Application Launcher. First, verify you can find the random directory; with the IDE running, ps should print something like

$ ps --format command= `pgrep --oldest arduino-ide`
/tmp/.mount_arduinn7DYEg/arduino-ide

The same-name .png icon is in the same directory (actually a link to a file elsewhere in the .AppImage) so it can be copied with some light shell trickery

cp $(ps --format command= `pgrep --oldest arduino-ide`).png ~/.local/opt

Now, a new Application can be added, probably in the Development category. Enable "Show Hidden Files" in the file picker if you haven't already, to see the .local directory when choosing both the Program and icon.

Enable serial port access

The user must have membership in a specific group to access the serial ports. On Debian/Ubuntu, this group is dialout. With Arch

sudo usermod -a -G uucp deck

The added group does not take effect until the next login. It was not clear if just leaving the Desktop and returning would be enough. A reboot worked.

1 Like

This is one of those things that I can't imagine ever doing except for the novelty of it, but I'm so glad someone has done.