Steam Deck with SteamOS3 - development environment

Hi everyone!
With Steam Deck raking huge community interest and rightfully receiving a lot of positive feedback for what it is - a gaming handheld, it would be interesting to see what other uses can be extracted of the default setup.

For multimedia, general office work and the like, most of the needs are already covered with the available Flatpaks.

One instance where things do appear to be trickier, would be programming. Setting a development environment that doesn’t break the read-only partition setup appears to be a tricky one.
I’m interested to see if someone has made a setup with containers that can be used for compiling things directly on the Deck.

My ideas so far are more or less in line with the following:

  • chroot environment (possibly using setup similar to the one described in Arch’s wiki)

  • empy Flatpak environment ( ? next to no information on how to set something like this)

  • Docker - haven’t tried to set it up on the Deck, unsure if there is Flatpak version that be used

  • Podman - haven’t tried to set it up on the Deck, unsure if there is Flatpak version that be used

The main goal is to have an environment where one can tinker with, test upstream packages or do personal projects. Compiling simple programs for the RPi seem like a good example, compiling a debug build of some program seem like another one.

I like the idea of an empty Flatpak that can be used for development (and simultaneous packaging) but I have no direction as to what to look for as reading material to make that happen.

I’m curious what your thoughts are and if you have some ideas.

1 Like

Disabled the read-only’ness of the steam deck and went wild.


Built some docker images, ran them. Not the fastest thing in the block, for anything non-hardware intensive - the experience is awesome.

Things I needed:

  • Docker
  • Terraform
  • Git
  • password manager
  • IDE (codium>code)
    Seem to all work just fine.
    Also managed to run D2R via Lutris, very pleasant experience
3 Likes

Seems like going away with the immutable system could be required for some actions.
Git, Docker, Terraform, etc are in their repos luckily - just requires write access to install (no manual compile of the packages needed/ adding extra mirrors or shady downloads)

I haven’t tried to export a Godot project yet :thinking: While the game itself will be using interpreted language, compiling the wrapper could be a problem there - maybe a verification task for next week when I have the time.

Code editors are available without unlocking the system through Flatpaks (personal preference is Kate).

Pwsd managers are going to be a pain. I do have KeePassXC installed (Flatpak version) but it’s not usable within the DeckUI gamescope session.
As a note - getting KDE Connect as Flatpak (see docs here) seems to work fine if all you need is some basic method to transfer data. I’m not using it for anything else so… Can’t comment on its other functionality

I’m hoping that Valve would dedicate a few engineers to improve the Wayland touch protocols (at some point that X11 KDE session will be replaced with the Wayland one). Pretty much it would directly benefit their gamescope session as it does use Wayland/ XWayland explaining the… temperamental keyboard behaviour in regards to it knowing the context or when to open/close.

The beta Flatpak of Lutris has been treating me quite well. If there is difference with the package on my Manjaro tower, I can’t really see it - almost 1:1 when compared to my PC tower (a few gamescope fenaglings here and there but that’s it).
Note for Lutris:
Close Steam before attempting to add auto-generated Lutris game launcher to the Steam Library.

Heroic Game Launcher has been a pain for me on both of my machines but I do believe that is because I’m attempting to cross-compare it with Lutris for GoG titles, not ones from Epic Games.

Back to the development environment :smile: I haven’t checked what exactly does the Developer mode expose and I can’t find any documentation for it :thinking:

1 Like

Okey, so this is the documentation when it comes to the Developer Mode on the Steam Deck:
https://partner.steamgames.com/doc/steamdeck/loadgames

From what I can find, it’s great for having the Deck as a debug client when using a host tower for deploy and monitoring. But doesn’t open up anything in terms of local development environment capabilities to the Deck itself.

When I have the time, I will try to see if this guide could lead me towards what I have in mind:
https://jgrulich.cz/2018/09/03/flatpak-support-in-kdevelop/

2 Likes

Yesterday, I was taking a look at KDevelop’s Flatpak - it was interesting that it came bundled with cmake within the Flatpak’s runtime libs.

If I read the docs correctly, the tools are enabled with --allow=devel in the Flatpak build: org.kde.kdevelop.json · master · Packaging / Flatpak KDE Applications · GitLab

Update:
Aaaand KDevelop broke after an update :smile: Not sure what exactly broke it yet

Update 2:
I’ve got KDevelop working again by enabling D-Bus session bus permission. Hmm, is this normal behaviour?

KDevelop not launching has been resolved with the latest release on Flathub: KDevelop crashes on start · Issue #40 · flathub/org.kde.kdevelop · GitHub

Now this is interesting:
https://github.com/89luca89/distrobox/blob/main/docs/compatibility.md#install-podman-in-a-static-manner

I haven’t tried installing podman that way yet but it’s mighty tempting.

Just one thing I can say here… if you’re reaearching don’t limit yourself to looking things up for Steamdeck or SteamOS, also check how people do this on something like Fedora Silverblue.

1 Like

Yeah, I’m checking both Fedora Silverblue and NixOS.

Haven’t spent much time on those setups yet tho

Aaaand just in time for this lovely video from GamingOnLinux:

That’s that I guess for setting up container for dev environment :smile:

Lets add Atoms to the mix: Manage Linux Chroot Environments Easily With Atoms GUI Tool

I still need to try it tho