Hacker News new | ask | show | jobs
by blackpelican 1125 days ago
I'm really enjoying Distrobox. With it, I've been able to develop on my Steam Deck and use it as my primary and only device.

The Steam Deck default OS (Steam OS 3) is a heavily locked down variant of Arch with only a couple of writable directories. With Distrobox, I can run an Ubuntu environment from one of those directories, ensuring that when I install SDKs or tools, they're being installed to a writable area of the OS but require no config to change what they think is intended install location.

3 comments

Can you tell us more about using a Steam Deck this way?

Do you often use the terminal (or something like VS Code Remote extension) to do builds on a beefier machine, or do you do all your development literally on the SteamDeck hardware using tools like Distrobox? And what kind of development do you do?

I ask because I need to get a new laptop, but only for the once or twice per month I go physically to the office, and was thinking a Steam Deck might make more sense than a traditional laptop that would be idle ~340 days of the year. (I can almost always get a monitor and external keyboard at the office, so it would be a rare day that I was actually stuck with the 1280×800 screen.)

I'm just your average full stack JS dev and I'm not doing any interesting project in my free time besides personal website stuff. Fortunately this means I can do literally everything on the Steam Deck (besides hosting obviously[1]).

What kind of development do you do? In theory, it's possible for a lot of roles. If you can get your environment working smoothly on a distro that Distrobox supports then you should be able to work on it.

I'd love to see someone rock up to the office with a Steam Deck, plug it in, and just start working. That's quite the image.

[1] The Steam Deck has a kind of A/B boot. By default it loads into Gaming mode and the other is Desktop mode. In Gaming mode, most apps and services aren't running (as far as I can tell but now I want to check) so I don't think you could ensure a server stays running in the background if you switched back to Gaming mode. On the other hand, you could live totally in Desktop mode and game from there, only losing the nice Gaming mode GUI.

I do regular web dev (whatever that means lol), but I also do a little bit of that "full build takes 45 minutes... if it doesn't fail because you only have 32GB RAM" dev.

But for that, any laptop sucks, so I've been using suitcase-sized desktops for .. well basically forever. But then in recent years it got so easy to develop on a laptop, but have everything running on a remote machine. I mean there's GitPod and GitHub Codespaces, and before that there were... uh, some web-based IDEs that didn't really work...

But then there came VS Code Remote so like as long as your laptop/[cyber|steam]deck can run VS Code and maybe some browsers, you're good to go!

So I mean OH FUCK IT WHY AM I STILL EVEN TALKING... WHOOOO!!! ORDERED

So if I'm getting this right, the Steam Deck is shaping up to be less of a gaming console and more of a portable DevOps station with a gaming side gig. Guess we're approaching the era where one can fill out an expense report for the boss and sau "I bought this gaming console for development" with a straight face.

Loving the trend, though. Between Distrobox and Docker, containers seem to be the inescapable "Matryoshka dolls" of the tech world.

But all jokes aside, the flexibility this provides is impressive. If you told me a few years ago that I'd be able to run a full Ubuntu environment on a handheld gaming device, I would've raised an eyebrow

No, the Steam Deck is a gaming console. It just isn't deliberately locked out and the fact that it's a computer underneath is left there for you to use if you want.

If you want a portable DevOps station, you want a cheap laptop. You don't want to use the default Steam Deck keyboard for much more than entering a login name or something. A Steam Deck with a keyboard plugged into it is much closer to a desktop setup than anything I'd call portable.

But portability is the only question. It's still a full computer. It just isn't a very convenient one for anything other than games.

I personally do use it a lot like a Nintendo Switch, though. You can easily have a desktop-like setup at home behind a dock, and then pop it out and carry it off portably. It's not quite as slick as a Switch but it works. But, again, this is a desktop setup with the Deck standing in as the computer, not a portable setup.

Close but I'd say it's more like a handheld console with a Chromebook attached.

Steam Deck apps (mostly) have to come from a Flatpak repo to install correctly but Flathub (the default repo and therefore defacto app store on the Steam Deck) has lots of the common apps for daily use, even if they are largely unofficial/unsupported versions. So for 95% of people, it's definitely usable as a laptop/desktop replacement, but if you want to develop or want stuff outside the Flatpak repos, it's a bit of a hassle.

That said, I love this thing.

Not the person you replied to but the Steam Deck is definitely a capable dev machine. I wouldn't work on the screen itself but it can handle most day-to-day dev workloads unless you're trying to run 10+ containers running heavy JVM apps on it.
I use Steam Deck as a Desktop PC. I use it for coding, as ssh client, for browsing and sometimes (very rarely) I play games on it :)

Here is a link to a photo of my setup at office: https://i.imgur.com/yT8CRfp.jpg

Not the person you're replying to but I've been using the .appimage builds (they're not official) and use Remote SSH on my deck. Works a treat and doesn't need a lot of resources.
Have you seen Rog Ally? It was recently released so it has newer and better hardware than Steam Deck. Unfortunately it runs Windows 11 but I'm pretty sure you can install Linux, or even Nobara Linux if you want to game on it like Steam Deck.

It has a Ryzen Z1 Extreme CPU (Zen 4), RDNA3 graphics, 512Gb storage, 16Gb RAM and 1080P 7" screen, so I think it should be good enough for web development, at least anything that doesn't need more than 16Gb RAM and a beefier CPU, but if you need that sometimes you can go cloud when you need it.

So it's basically a chroot?
Well, as much as containers are a chroot. It's also heavily integrated with the host system.
It passes through enough of your root filesystem so you can run systemd and a whole new pid 1 inside the 'chroot'.