你的Linux启动Steam是不是老这样？

问题 1. 为什么我的 Steam 在终端能启动，在桌面就不行？

于是我操作了一下，作为 Linux 菜鸟思考 —— 注销然后切换 x11。
其实根本原因不在 Wayland/X11，而在 “桌面启动器拿到的环境变量” ≠ “终端里的环境变量”。
终端里我能启动，是因为 bash 替你加载了～/.bashrc、/etc/profile.d/ 里的各种 export；
双击图标时，systemd-/plasma-/gnome-session 只给你 最小化环境，于是 Steam 找不到库、找不到显卡、甚至找不到 PATH，直接 abort。

问题 2. 那如何将这个桌面程序变成 Bash 启动呢？

操作一下：就改.desktop。
照 AI 的把 “终端环境” 整体 dump 出来
先在你能启动的终端里执行：

Copy
# 把当前环境全部导出到文件
env | grep -E '^(PATH|LD_|GTK_|QT_|XDG_|GALLIUM|VK_|DRI|LIBGL)' > ~/.steam_env
# 再给Steam单独写一行
echo 'export GDK_BACKEND=x11' >> ~/.steam_env

建一个 “带环境” 的包装脚本

Copy
mkdir -p ~/.local/bin
nano ~/.local/bin/steam-wrapper

加入以下内容：

Copy
#!/bin/bash
# 先加载刚才dump下来的完整环境
set -a
source ~/.steam_env
set +a
# 再启动真正的steam
exec /usr/bin/steam "$@"

赋予权限

Copy
chmod +x ~/.local/bin/steam-wrapper

让桌面启动器调用这个脚本，而不是裸 steam
复制一份 desktop 文件到本地：

Copy
cp /usr/share/applications/steam.desktop ~/.local/share/applications/
sed -i 's|Exec=/usr/bin/steam|Exec=/home/'$USER'/.local/bin/steam-wrapper|' \
~/.local/share/applications/steam.desktop

亲测有效～