Finds vte3 for you
Missing terminal widget? The keyrings are repaired and vte3 is installed, no manual pacman work.
Forty-plus system, boot, network and gaming tools for the Steam Deck, wrapped in one GTK app. Install it with a single terminal command — the script handles the system dependencies, drops a desktop shortcut, and hands SteamOS back in read-only mode.
Four things that usually turn a Steam Deck install into an afternoon of reading forums — handled silently.
Missing terminal widget? The keyrings are repaired and vte3 is installed, no manual pacman work.
SteamOS is unlocked only while it has to be. An exit trap re-locks it even when something fails.
The payload is checked for the expected script markers, so an error page or a truncated file is rejected instead of run.
“Deck Toolbox.desktop” lands on your desktop. Click it and the GUI opens, no terminal involved.
Switch the Deck to Desktop Mode, open Konsole, and pick one of the two routes.
/i is a short link that always redirects to the newest install_gui.sh on GitHub, so this command never goes stale. On a real domain it reads like curl -L steamdeck-toolbox.pages.dev/i | sh — paste that into Konsole and press Enter.
Grab the script below, then run it from the folder you saved it in with bash install.sh. It will ask for sudo — type your Deck password when prompted (nothing is stored).
Everything runs from one window with a searchable feature list, a live task log and dark or light appearance.
Reclaim memory and clear out the clutter that slows a Deck down over months of use.
Clover in a couple of clicks, plus the repairs that matter when an update eats your boot entry.
Accelerators for game downloads and a remote desktop for when a friend has to take over.
Install and uninstall the usual desktop apps without hunting for Flatpak IDs.
Frame generation, lossless scaling and the plugin loaders they depend on.
Dark, light or follow-system, remembered across reboots — and the app keeps itself current.
Nothing hidden: this is the exact file the one-line command runs. Read it here, copy it, or download it and run it yourself.
#!/bin/bash
TOOLBOX_URL="https://raw.githubusercontent.com/Zhucy123/steamdeck_toolbox/main/steamdeck_gui.py"
TOOLBOX_NAME="$HOME/steamdeck_gui.py"
# Automatically restore SteamOS read-only mode when the script exits (including on error),
# so that system updates are not affected.
cleanup() {
if command -v steamos-readonly &>/dev/null; then
if sudo -n steamos-readonly status 2>/dev/null | grep -q "disabled"; then
if sudo -n steamos-readonly enable 2>/dev/null; then
echo "✅ Read-only mode restored"
else
echo "⚠️ Please run manually: sudo steamos-readonly enable"
fi
fi
fi
}
trap cleanup EXIT
echo "Checking system read-only status..."
sudo steamos-readonly disable 2>/dev/null || true
if pacman -Q vte3 &> /dev/null; then
echo "✅ vte3 is already installed."
else
echo "vte3 (terminal component) not found, attempting to install..."
# Note: SteamOS uses both the archlinux and holo keyrings.
# 889B5EBD... belongs to holo-keyring. When only archlinux is populated, that key
# is not imported and the later --lsign-key necessarily reports "unable to sign
# locally", so both keyrings must be populated.
if [ ! -f /etc/pacman.d/gnupg/pubring.gpg ]; then
echo "Initializing Pacman keys..."
sudo pacman-key --init || {
echo "❌ Failed to initialize the pacman keyring, cannot install vte3."
exit 1
}
fi
sudo chown -R root:root /etc/pacman.d/gnupg 2>/dev/null || true
sudo chmod 700 /etc/pacman.d/gnupg 2>/dev/null || true
echo "Populating official Arch and SteamOS Holo keys..."
sudo pacman-key --populate archlinux || {
echo "❌ Failed to populate the archlinux keyring."
exit 1
}
if [ -f /usr/share/pacman/keyrings/holo.gpg ]; then
sudo pacman-key --populate holo || {
echo "❌ Failed to populate the holo keyring."
exit 1
}
fi
echo "Trusting the SteamOS packager key..."
if ! sudo pacman-key --lsign-key 889B5EBDDD505A683621900DAF1D2199EF0A3CCF; then
echo "⚠️ Key signing failed, refreshing keyrings and retrying..."
sudo pacman-key --refresh-keys 2>/dev/null || true
sudo pacman-key --populate archlinux holo 2>/dev/null || true
sudo pacman-key --lsign-key 889B5EBDDD505A683621900DAF1D2199EF0A3CCF || {
echo "❌ Key signing still failed, cannot install vte3."
echo " You can try manually: sudo pacman-key --init && sudo pacman-key --populate archlinux holo"
exit 1
}
fi
sudo pacman -Sy --noconfirm 2>/dev/null || true
if sudo pacman -S --needed --noconfirm vte3; then
echo "✅ vte3 installed successfully!"
else
echo "⚠️ vte3 installation failed. The GUI will use plain-text mode (features still work)."
fi
fi
echo "Downloading the Steam Deck GUI toolbox from GitHub..."
if curl -L --progress-bar "$TOOLBOX_URL" -o "$TOOLBOX_NAME"; then
# Validate the downloaded content to avoid an error page or an incomplete file
if ! grep -q 'BASH_SCRIPT = ' "$TOOLBOX_NAME" || ! grep -q '^VERSION = ' "$TOOLBOX_NAME"; then
echo "❌ Download validation failed (not a valid toolbox script). Please check your network and retry."
rm -f "$TOOLBOX_NAME"
exit 1
fi
chmod +x "$TOOLBOX_NAME"
echo "Download complete!"
echo "✅ Installation successful!"
echo ""
DESKTOP_FILE="$HOME/Desktop/Deck Toolbox.desktop"
if [ -f "$DESKTOP_FILE" ]; then
echo "Desktop shortcut already exists."
else
cat > "$DESKTOP_FILE" << EOF
[Desktop Entry]
Type=Application
Name=Deck Toolbox
Exec=$(command -v python3) "$TOOLBOX_NAME"
Icon=input-gamepad-symbolic
Terminal=false
StartupNotify=true
Categories=Utility;
EOF
chmod +x "$DESKTOP_FILE"
echo "✅ Desktop shortcut created: Deck Toolbox.desktop"
fi
echo "Click or double-click the 'Deck Toolbox' icon on the desktop to launch the program."
echo ""
exit 0
else
echo "❌ Download failed. Please check your network and retry."
exit 1
fi
The short answers to what people ask before installing.
No. Switch the Deck to Desktop Mode and open Konsole from the taskbar — the on-screen keyboard is enough to paste one command.
Two reasons only: toggling steamos-readonly and installing the vte3 package. Your password is never written anywhere; sudo asks for it, the system checks it, and the script moves on.
The installer says so and continues. The toolbox then runs in plain-text mode — every feature still works, only the embedded terminal window is unavailable.
Yes, and on eMMC or SSD variants. Device-specific paths are never hardcoded: the EFI system partition is located at runtime through findmnt and the EFI partition type GUID.
On startup the toolbox reads VERSION from the official GitHub repository and offers a one-click self-update, so the app stays current without re-running the installer. Re-running it later is also safe: it just re-downloads the current script.
The toolbox does not send telemetry or usage data anywhere; the only network calls it makes are downloads you ask for (GitHub, Flathub, app vendors) and its own update check against GitHub. The page you are reading makes no third-party requests at all — no CDN, no webfonts, no trackers.
Delete ~/steamdeck_gui.py and the Deck Toolbox.desktop shortcut. Things you installed through the toolbox — Clover, Decky plugins, GE-Proton, Flatpak apps — each have their own uninstall entry inside it, so remove those first if you want the system left clean.