Installation

Basic runtime dependencies

If not already installed, the below can be found in your system’s package manager.

If any dependencies are missing when the application starts, it will warn you, so you need not take any preemptive measures here.

  • curl

  • jq

  • steam

  • wmctrl or xdotool

  • zenity

Note

All dependencies are installed out of the box on Steam Deck.

UI dependencies (Python and PyGObject)

Important

As of version 6.0.0, you must have a valid Python 3.13 and matching PyGObject environment. Depending on your distribution, this may require additional manual intervention.

Arch Linux (vanilla variants)

You will need the python3.13 package, if it is not already installed.

Install the following build dependencies:

sudo pacman -S cmake gcc pkgconf python-cairo

After satisfying the dependencies above, create a virtual environment (venv) and install PyGObject:

If you have uv as your Python version manager, invoke the following:

uv venv --python 3.13 $HOME/.virtualenvs/dzgui
source $HOME/.virtualenvs/dzgui/bin/activate
uv pip install PyGObject

If you installed the python3.13 package directly instead of uv, use the below:

python3.13 -m venv $HOME/.virtualenvs/dzgui
source $HOME/.virtualenvs/dzgui/bin/activate
pip install PyGObject

You can now proceed to the Installscript. After installation, refer to the additional remarks below.

Important

Since PyGObject is localized to a venv, it is advisable to create a wrapper script to ensure the venv is activated on subsequent invocations of DZGUI.

#!/usr/bin/env bash
source $HOME/.virtualenvs/dzgui/bin/activate
<insert your path to dzgui.sh>

Make sure to update the placeholder path on the last line. For example, if you ran the installscript from your home directory, the wrapper script would look like:

#!/usr/bin/env bash
source $HOME/.virtualenvs/dzgui/bin/activate
$HOME/dzgui.sh

Save this wrapper script in a location of your choice, e.g., mywrapper.sh and set the executable bit: chmod +x mywrapper.sh This script will be your entrypoint for future invocations of DZGUI, so you should launch it, not dzgui.sh

CachyOS (Arch)

Refer to the build instructions for Arch Linux first. The python3.13 package is not available on CachyOS, so it is recommended to use uv to manage Python versions.

sudo pacman -S uv

After satisfying the dependencies above, create a virtual environment (venv) and install PyGObject:

If you have uv as your Python version manager, invoke the following:

uv venv --python 3.13 $HOME/.virtualenvs/dzgui
source $HOME/.virtualenvs/dzgui/bin/activate
uv pip install PyGObject

If you installed the python3.13 package directly instead of uv, use the below:

python3.13 -m venv $HOME/.virtualenvs/dzgui
source $HOME/.virtualenvs/dzgui/bin/activate
pip install PyGObject

You can now proceed to the Installscript. After installation, refer to the additional remarks below.

Important

Since PyGObject is localized to a venv, it is advisable to create a wrapper script to ensure the venv is activated on subsequent invocations of DZGUI.

#!/usr/bin/env bash
source $HOME/.virtualenvs/dzgui/bin/activate
<insert your path to dzgui.sh>

Make sure to update the placeholder path on the last line. For example, if you ran the installscript from your home directory, the wrapper script would look like:

#!/usr/bin/env bash
source $HOME/.virtualenvs/dzgui/bin/activate
$HOME/dzgui.sh

Save this wrapper script in a location of your choice, e.g., mywrapper.sh and set the executable bit: chmod +x mywrapper.sh This script will be your entrypoint for future invocations of DZGUI, so you should launch it, not dzgui.sh

Manjaro 26 (Arch)

If Python 3.13 is not already available out of the box, refer to the build instructions for Arch Linux (vanilla variants).

Debian 13 variants

Python 3.13 and PyGObject are available out of the box. No additional steps are necessary. You can proceed to the Installscript.

Fedora 43 variants

Fedora 43 ships with a newer version of Python (3.14), so you must set up Python 3.13 in its own virtual environment (venv) to prevent it from conflicting with the system package.

Install the following build dependencies:

sudo dnf install cairo cairo-devel cairo-gobject-devel gcc python3.13 python3.13-devel

After satisfying the dependencies above, create a virtual environment (venv) and install PyGObject:

If you have uv as your Python version manager, invoke the following:

uv venv --python 3.13 $HOME/.virtualenvs/dzgui
source $HOME/.virtualenvs/dzgui/bin/activate
uv pip install PyGObject

If you installed the python3.13 package directly instead of uv, use the below:

python3.13 -m venv $HOME/.virtualenvs/dzgui
source $HOME/.virtualenvs/dzgui/bin/activate
pip install PyGObject

You can now proceed to the Installscript. After installation, refer to the additional remarks below.

Important

Since PyGObject is localized to a venv, it is advisable to create a wrapper script to ensure the venv is activated on subsequent invocations of DZGUI.

#!/usr/bin/env bash
source $HOME/.virtualenvs/dzgui/bin/activate
<insert your path to dzgui.sh>

Make sure to update the placeholder path on the last line. For example, if you ran the installscript from your home directory, the wrapper script would look like:

#!/usr/bin/env bash
source $HOME/.virtualenvs/dzgui/bin/activate
$HOME/dzgui.sh

Save this wrapper script in a location of your choice, e.g., mywrapper.sh and set the executable bit: chmod +x mywrapper.sh This script will be your entrypoint for future invocations of DZGUI, so you should launch it, not dzgui.sh

Ubuntu 24 variants

Ubuntu ships with an older version of Python (3.12). You must install additional dependencies. Add the PPA below to add Python 3.13 to your sources:

sudo add-apt-repository ppa:deadsnakes/ppa

Install the following build dependencies:

sudo apt install python3.13 python3.13-venv python3.13-dev build-essential python3-gi-cairo pkg-config libgirepository-2.0-dev libcairo2-dev

After satisfying the dependencies above, create a virtual environment (venv) and install PyGObject:

If you have uv as your Python version manager, invoke the following:

uv venv --python 3.13 $HOME/.virtualenvs/dzgui
source $HOME/.virtualenvs/dzgui/bin/activate
uv pip install PyGObject

If you installed the python3.13 package directly instead of uv, use the below:

python3.13 -m venv $HOME/.virtualenvs/dzgui
source $HOME/.virtualenvs/dzgui/bin/activate
pip install PyGObject

You can now proceed to the Installscript. After installation, refer to the additional remarks below.

Important

Since PyGObject is localized to a venv, it is advisable to create a wrapper script to ensure the venv is activated on subsequent invocations of DZGUI.

#!/usr/bin/env bash
source $HOME/.virtualenvs/dzgui/bin/activate
<insert your path to dzgui.sh>

Make sure to update the placeholder path on the last line. For example, if you ran the installscript from your home directory, the wrapper script would look like:

#!/usr/bin/env bash
source $HOME/.virtualenvs/dzgui/bin/activate
$HOME/dzgui.sh

Save this wrapper script in a location of your choice, e.g., mywrapper.sh and set the executable bit: chmod +x mywrapper.sh This script will be your entrypoint for future invocations of DZGUI, so you should launch it, not dzgui.sh

Installscript

Invoke the command below from a terminal. This script fetches the main DZGUI script from the repository, makes it executable, and launches DZGUI’s first-time setup. After running this installscript, you will have the file dzgui.sh wherever you invoked the command.

curl -s "https://codeberg.org/aclist/dztui/raw/branch/dzgui/install.sh" | bash

nixOS installation

Two packages are independently maintained by other contributors. Each takes a slightly different approach. nixOS packages are standalone and do not require cloning the git repository.

Next steps

Proceed to the next section for setup instructions.