Distrobox is a way to use pretty much any other Linux distribution in your terminal, along with full GUI apps and now it supports the Steam Deck with SteamOS too.
The update released a few days ago had some issues (#1, #2, #3), which I reported to the developer and they've since fixed up the installers and the documentation for Steam Deck. So with that in mind, I took it for a spin to see how it works and I've been thoroughly impressed with how easy it is.
It gives you a container system to install other distributions. So for the likes of SteamOS on the Steam Deck, without messing with the root filesystem, you can install something like Ubuntu and access everything it has available. Useful for software not available via Flathub (Discover) or elsewhere.
Here's a short video overview of the basic setup and running some apps from Ubuntu on Steam Deck:
Direct Link
Guide (official link):
First up, run these install scripts one after the other in a terminal app (like Konsole on Steam Deck):
curl -s https://raw.githubusercontent.com/89luca89/distrobox/main/install | sh -s -- --prefix ~/.local
curl -s https://raw.githubusercontent.com/89luca89/distrobox/main/extras/install-podman | sh -s -- --prefix ~/.local
Next up, we need to add the directories it uses into our .bashrc file, so we can run commands as normal in terminal. In your .bashrc file (found in your Home folder), open it in a text editor and add these to the bottom:
export PATH=$HOME/.local/bin:$PATH
export PATH=$HOME/.local/podman/bin:$PATH
Now you can install a Linux distribution with Distrobox, with Ubuntu as the example (in terminal again):
distrobox create -i ubuntu:20.04
Then once done, you can enter it:
distrobox enter ubuntu-20-04
This is where the fun begins. Now you can install or do whatever you like, inside Ubuntu. However, you also need to add this to your .bashrc file to run graphical applications / games on Steam Deck:
xhost +si:localuser:$USER
I mean, for example let's create a hypothetical situation that any user could run into, let's say you are managing multiple serversHee!
Let's say I'm not doing that, shall we?
I checked the man page to learn what exactly this command is doing since I haven't seen the -p and -v flags before, and I didn't even know that this was a thing that could be done - thanks for this one, it ought to come in handy at some point! This is one of those things that falls under my "right tool for the job" criteria.Oh.. copy and paste yes I suppose there is that I hadn't thought of that
Still that involves going into each folder to paste
I mean, for example let's create a hypothetical situation that any user could run into, let's say you are managing multiple serversHee!
Let's say I'm not doing that, shall we?
Okay, another example with the same idea.
Let's say you want to organize your music library by genre and by year
So again, hypothetically a layout as follows:
Music
- Classical
- 1990
- 1991
- (etc util 2022)
- Country Western
- 1990
- 1991
- (etc util 2022)
- Rap
- 1990
- 1991
- (etc util 2022)
- Raggae
- 1990
- 1991
- (etc util 2022)
- Rock
- 1990
- 1991
- (etc util 2022)
$ cd ~/Music
$ mkdir -p -v {'Classical','Country Western',"Rap",'Raggae','Rock'}/{1990..2022}
Simples and effective
So, you also post an article about how much you're loving that Disney game. And you make the headline for this as "Distrobox can open up the Steam Deck to a whole new world". Were you singing the last part in your head while writing this?👀 👀 no comment.
Now that makes total sense to me. Except the part where a "Country Western" category exists, of course.I checked the man page to learn what exactly this command is doing since I haven't seen the -p and -v flags before, and I didn't even know that this was a thing that could be done - thanks for this one, it ought to come in handy at some point! This is one of those things that falls under my "right tool for the job" criteria.Oh.. copy and paste yes I suppose there is that I hadn't thought of that
Still that involves going into each folder to paste
I mean, for example let's create a hypothetical situation that any user could run into, let's say you are managing multiple serversHee!
Let's say I'm not doing that, shall we?
Okay, another example with the same idea.
Let's say you want to organize your music library by genre and by year
So again, hypothetically a layout as follows:
Music
- Classical
- 1990
- 1991
- (etc util 2022)
- Country Western
- 1990
- 1991
- (etc util 2022)
- Rap
- 1990
- 1991
- (etc util 2022)
- Raggae
- 1990
- 1991
- (etc util 2022)
- Rock
- 1990
- 1991
- (etc util 2022)
$ cd ~/Music
$ mkdir -p -v {'Classical','Country Western',"Rap",'Raggae','Rock'}/{1990..2022}
Simples and effective
Me and non-metal music is like a first-time computer user and BSD[1], it just doesn't happen. So I just picked more modern genres I figure modern people listen to in order to be relatable to them
I'm no music expert and the closest I come to playing a musical instrument is a plastic guitar on a video game
[1] I'm now fully expecting someone replies soon to say their first computer experience was with BSD
Okay, another example with the same idea.
Let's say you want to organize your music library by genre and by year
Now that makes total sense to me. Except the part where a "Country Western" category exists, of course.My use-case for this will be categorising the photographs of my collection of Bomberman items as it gets bigger... My wallet's not gonna get out of next year's 40th anniversary unscathed!
Well, you have excellent taste in music.So, you also post an article about how much you're loving that Disney game. And you make the headline for this as "Distrobox can open up the Steam Deck to a whole new world". Were you singing the last part in your head while writing this?👀 👀 no comment.
Last edited by Pengling on 13 September 2022 at 6:57 pm UTC
So... attach a proper keyboard until I've set up SSH access. Looks promising though. I'm also going to create an encrypted dir with EncFS for my (Pale Moon) browser profile, etc.
"install-podman" wouldn't work until I'd set a password for user "deck". Also, trying to use the on screen keyboard is a total pain, especially with no CTRL and arrow keys.You'd have had to set a password for the deck user to configure ssh access anyway, so no worries!
So... attach a proper keyboard until I've set up SSH access. Looks promising though. I'm also going to create an encrypted dir with EncFS for my (Pale Moon) browser profile, etc.
The good news is the deck won't ask you for that password unless you're doing something in terminal, ssh etc.
Oh, and if you add / edit any files in /etc, those changes will persist across steam deck updates.
Anyway, regarding input, yeah in its default state trying to do anything via keyboard is a pain in a certain area south from your head[1]
But there's good news! You can reconfigure the controller layout from steam preferences in desktop mode, which means you can quickly add other keys.
Personally I set it as follows, and found the whole thing much easier to use:
R2 = Enter key press
DPad = U / D / R / L Arrow keys
A Button = Left click
B Button = Right click
X Button = C keyboard key
Y Button = V keyboard key
L1 = Control key
R1 = Y keyboard key
Right side joystick = Mouse movement
I much prefer this way because it means I don't have to touch the screen and leave fingerprints all over it 😂
Naturally your preference will differ, but it's just my 2c 🫡
Enjoy your deck 😃
[1] Trying to keep to the rules and avoiding bad language
Last edited by BlackBloodRum on 14 September 2022 at 10:50 am UTC
I've inserted the code
xhost +si:localuser:$USER
in the .bashrc file as specified but when I try to enter ubuntu in bash I receive the error bash: xhost: command not found
. I should clarify that I am able to enter the ubuntu subsystem but with said error. Leads me to believe everything is working except the UI ability (which I as a shell dummy would really like to use)I'm a fairly new linux user going mostly by tutorial right now and trying to get my steam deck set up as a development environment for The Odin Project and I'm pretty stuck at this stage.
$ curl -s https://raw.githubusercontent.com/89luca89/distrobox/main/extras/install-podman | sh -s -- --prefix ~/.local
Checking dependencies...
Fetching crun 1.8.7...
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
100 2773k 100 2773k 0 0 3616k 0 --:--:-- --:--:-- --:--:-- 3616k
Fetching podman 4.6.2...
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 9 100 9 0 0 10 0 --:--:-- --:--:-- --:--:-- 10
Unpacking Podman...
tar: This does not look like a tar archive
gzip: stdin: not in gzip format
tar: Child returned status 1
tar: Error is not recoverable: exiting now
See more from me