1. Home
  2. Linux
  3. How to set up distrobox on steam deck

How to set up Distrobox on Steam Deck

Steam Deck’s SteamOS is powerful, offering a full Arch Linux desktop, but it’s immutable and uses atomic updates (where updates happen all at once, keeping the system stable). So, you can’t install programs the usual way.

Enter Distrobox. It lets you create a containerized environment on SteamOS, where you can install and run any program, GUI, or CLI, without touching the main system. Here’s how to get Distrobox up and running.

The distrobox hero image.

How to install Distrobox on Steam Deck

SteamOS is an immutable operating system, meaning that users are unable to modify system-level files. Consequently, Distrobox must be installed at the user level (in the home directory) on SteamOS.

To initiate the installation process, switch your Steam Deck to desktop mode. If you’re unsure how to do this, follow these steps:

  1. Press the “Steam” button on the Steam Deck to access the Steam menu. From there, navigate to “Power” and select it.
  2. In the “Power” menu, locate the “Switch to Desktop” option and select it to transition to the SteamOS desktop.
  3. Once on the SteamOS desktop, you need to open the Konsole terminal. Search for Konsole in the SteamOS app menu to launch it.

With Konsole open, employ the curl command to install the Distrobox tool in the ~/.local directory of your Steam Deck:

curl -s https://raw.githubusercontent.com/89luca89/distrobox/main/install | sh -s -- --prefix ~/.local

After setting up Distrobox on SteamOS, your next step is to install Podman. Podman is a containerization tool crucial for Distrobox’s functionality. The benefit of Podman is that it doesn’t require root access to operate. Install it using the following command:

curl -s https://raw.githubusercontent.com/soltros/random-stuff/main/install-podman | sh -s -- --prefix ~/.local

Next, you must modify the ~/.bashrc file on your Steam Deck, which manages your Bash profile, to accommodate Distrobox:

echo "#Distrobox settings" >> ~/.bashrc

echo "export PATH=$HOME/.local/bin:$PATH" >> ~/.bashrc

echo "export PATH=$HOME/.local/podman/bin:$PATH" >> ~/.bashrc

echo "xhost +si:localuser:$USER" >> ~/.bashrc

echo "alias distrobox='~/.local/bin/distrobox'" >> ~/.bashrc

To apply these changes to your ~/.bashrc file, source the modified file in Konsole. Alternatively, you can simply close and reopen Konsole to automatically apply the new settings:

source ~/.bashrc

How to create a Distrobox container on Steam Deck

Now that you’ve installed Distrobox on your Steam Deck, it’s a good idea to confirm that Distrobox is working. To test it, run the distrobox command.

distrobox

Assuming that the Distrobox tool is working, you can use it to create a new Distrobox container. There are many different OSes you can create on Distrobox. For example, if you wish to make an Ubuntu OS, you can use the --image command and specify Ubuntu from Dockerhub.

distrobox-create --name my-ubuntu-box --image docker.io/library/ubuntu

Running the above command will pull in Ubuntu from Dockerhub. After it pulls it, you can log into the container. To do this, use the distrobox enter command. This will launch Distrobox, deploy Ubuntu for the first time, set it up, and give you command-line access.

Distrobox deploying container.

distrobox enter my-ubuntu-box

Once you log into the Ubuntu Distrobox, you’ll need to install Xhost. Some containers do not come equipped with this package, and won’t be able to pass programs to it without it. To install it in the container, run:

Distrobox updating software in the Ubuntu container.

sudo apt install x11-xserver-utils

Other Distrobox operating systems

It’s recommended to stick with Ubuntu in Distrobox as it is highly compatible and makes it very easy to get most programs working within the container. However, you can use any Linux OS you want. Here’s a list of common Linux images can you try.

  1. Debian
  • Image: debian
  • Example Command: distrobox-create --name my-debian-box --image docker.io/library/debian
  1. Fedora
  • Image: fedora
  • Example Command: distrobox-create --name my-fedora-box --image docker.io/library/fedora
  1. CentOS
  • Image: centos
  • Example Command: distrobox-create --name my-centos-box --image docker.io/library/centos
  1. Alpine Linux
  • Image: alpine
  • Example Command: distrobox-create --name my-alpine-box --image docker.io/library/alpine
  1. Arch Linux
  • Image: archlinux
  • Example Command: distrobox-create --name my-arch-box --image docker.io/library/archlinux
  1. openSUSE
  • Image: opensuse/leap or opensuse/tumbleweed
  • Example Command: distrobox-create --name my-opensuse-box --image docker.io/library/opensuse/leap
  1. Red Hat Enterprise Linux (RHEL)
  • Image: registry.access.redhat.com/ubi8/ubi (Universal Base Image)
  • Example Command: distrobox-create --name my-rhel-box --image registry.access.redhat.com/ubi8/ubi
  1. Mint
  • Image: linuxmintd/mint20-amd64
  • Example Command: distrobox-create --name my-mint-box --image docker.io/library/linuxmintd/mint20-amd64
  1. Manjaro Linux
    • Image: manjarolinux/base
    • Example Command: distrobox-create --name my-manjaro-box --image docker.io/library/manjarolinux/base

How to set up apps with Distrobox

Now that you’ve got your Distrobox container up and running, it’s time to install some GUI apps. For example, if you wish to install Gimp, you can use the apt install command inside of Distrobox.

distrobox enter my-ubuntu-box

sudo apt install gimp

Once the program is installed in the Distrobox, export it to the Steam OS app menu with:

distrobox export my-ubuntu-box --app gimp