問題 1. 為什麼我的 Steam 在終端能啟動,在桌面就不行?#
於是我操作了一下,作為 Linux 菜鳥思考 —— 登出然後切換 x11。
其實根本原因不在 Wayland/X11,而在 “桌面啟動器拿到的環境變數” ≠ “終端裡的環境變數”。
終端裡我能啟動,是因為 bash 替你加載了~/.bashrc、/etc/profile.d/ 裡的各種 export;
雙擊圖標時,systemd-/plasma-/gnome-session 只給你 最小化環境,因此 Steam 找不到庫、找不到顯卡、甚至找不到 PATH,直接 abort。
問題 2. 那如何將這個桌面程序變成 Bash 啟動呢?#
操作一下:就改.desktop。
照 AI 的把 “終端環境” 整體 dump 出來
先在你能啟動的終端裡執行:
# 把當前環境全部導出到文件
env | grep -E '^(PATH|LD_|GTK_|QT_|XDG_|GALLIUM|VK_|DRI|LIBGL)' > ~/.steam_env
# 再給Steam單獨寫一行
echo 'export GDK_BACKEND=x11' >> ~/.steam_env
建一個 “帶環境” 的包裝腳本
mkdir -p ~/.local/bin
nano ~/.local/bin/steam-wrapper
加入以下內容:
#!/bin/bash
# 先加載剛才dump下來的完整環境
set -a
source ~/.steam_env
set +a
# 再啟動真正的steam
exec /usr/bin/steam "$@"
賦予權限
chmod +x ~/.local/bin/steam-wrapper
讓桌面啟動器調用這個腳本,而不是裸 steam
複製一份 desktop 文件到本地:
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
親測有效~