Steam Deck · 桌面模式一键安装

Steam Deck 工具箱 · 一键安装脚本

在 Steam Deck 桌面模式下运行本脚本,即可自动安装 GUI 工具箱并在桌面生成「Deck工具箱」快捷方式。

✨ 脚本特性

四件麻烦事,脚本全自动处理,装完即用。

01

自动装 vte3

缺终端组件时自动处理 Pacman 密钥环并安装

02

退出恢复只读

脚本结束(含出错)时自动恢复 SteamOS 只读模式

03

下载带校验

从 Gitee 下载工具箱并校验内容,防止下到错误文件

04

桌面快捷方式

自动创建 Deck工具箱.desktop,双击即可启动

🚀 使用方法

两种方式任选其一,推荐直接复制一键命令。

方法一:一键命令

推荐
curl -L 你的名字.pages.dev/i | sh

短地址 /i 会自动跳转到 Gitee 上的最新版 install_gui.sh,脚本更新后这条命令不用改。

方法二:手动下载

点下方「下载脚本」拿到 install.sh,在 Steam Deck 桌面模式的终端里进入下载目录,执行 bash install.sh。运行过程中会用到 sudo,请按终端提示输入密码。

install.sh Shell 脚本 · 4.0 KB · 107 行
⬇ 下载脚本

📄 脚本全文 107 行 · 与 install.sh 逐字一致

页面内嵌完整脚本,可一键复制或下载,复制内容直接取自代码框文本。

📄 install.sh 107 行 · 4.0 KB
⬇ 下载脚本
#!/bin/bash

TOOLBOX_URL="https://gitee.com/Zhucy2100/steamdeck_toolbox/raw/master/steamdeck_gui.py"
TOOLBOX_NAME="$HOME/steamdeck_gui.py"

# 脚本退出(含出错)时自动恢复 SteamOS 只读模式,避免系统更新受影响
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 "✅ 已恢复只读模式"
            else
                echo "⚠️ 请手动执行: sudo steamos-readonly enable"
            fi
        fi
    fi
}
trap cleanup EXIT

echo "正在检查系统只读状态..."
sudo steamos-readonly disable 2>/dev/null || true

if pacman -Q vte3 &> /dev/null; then
    echo "✅ vte3 已安装。"
else
    echo "未找到 vte3(终端组件),正在尝试安装..."
    # 注意:SteamOS 同时使用 archlinux 与 holo 两个钥匙环。
    # 889B5EBD... 属于 holo-keyring,只 populate archlinux 时该密钥不会被导入,
    # 后续 --lsign-key 必然报“无法在本地签署”,因此两个钥匙环都必须导入。
    if [ ! -f /etc/pacman.d/gnupg/pubring.gpg ]; then
        echo "正在初始化 Pacman 密钥..."
        sudo pacman-key --init || {
            echo "❌ pacman keyring 初始化失败,无法安装 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 "正在填充 Arch 官方与 SteamOS Holo 密钥..."
    sudo pacman-key --populate archlinux || {
        echo "❌ archlinux 钥匙环填充失败。"
        exit 1
    }
    if [ -f /usr/share/pacman/keyrings/holo.gpg ]; then
        sudo pacman-key --populate holo || {
            echo "❌ holo 钥匙环填充失败。"
            exit 1
        }
    fi
    echo "正在信任 SteamOS 打包者密钥..."
    if ! sudo pacman-key --lsign-key 889B5EBDDD505A683621900DAF1D2199EF0A3CCF; then
        echo "⚠️ 密钥签署失败,刷新钥匙环后重试..."
        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 "❌ 密钥签署仍失败,无法安装 vte3。"
            echo "   可尝试手动执行: 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 安装成功!"
    else
        echo "⚠️ vte3 安装失败,GUI 将使用纯文本模式(功能仍可用)。"
    fi
fi

echo "正在从 Gitee 下载 Steam Deck GUI 工具箱..."

if curl -L --progress-bar "$TOOLBOX_URL" -o "$TOOLBOX_NAME"; then
    # 下载内容校验,防止拿到错误页/不完整文件
    if ! grep -q 'BASH_SCRIPT = ' "$TOOLBOX_NAME" || ! grep -q '^VERSION = ' "$TOOLBOX_NAME"; then
        echo "❌ 下载内容校验失败(不是有效的工具箱脚本),请检查网络后重试"
        rm -f "$TOOLBOX_NAME"
        exit 1
    fi
    chmod +x "$TOOLBOX_NAME"
    echo "下载完成!"
    echo "✅ 安装成功!"
    echo ""

    DESKTOP_FILE="$HOME/Desktop/Deck工具箱.desktop"
    if [ -f "$DESKTOP_FILE" ]; then
        echo "桌面快捷方式已存在。"
    else
        cat > "$DESKTOP_FILE" << EOF
[Desktop Entry]
Type=Application
Name=Deck工具箱
Exec=$(command -v python3) "$TOOLBOX_NAME"
Icon=input-gamepad-symbolic
Terminal=false
StartupNotify=true
Categories=Utility;
EOF
        chmod +x "$DESKTOP_FILE"
        echo "✅ 已创建桌面快捷方式:Deck工具箱.desktop"
    fi

    echo "请单击或双击桌面上的 'Deck工具箱' 图标来启动程序。"
    echo ""
    exit 0
else
    echo "❌ 下载失败,请检查网络后重试"
    exit 1
fi
只读预览 · 无语法高亮,复制内容即原文 install.sh · 107 行
已复制 ✅