banner
可达鸭

可达鸭DE博客

「この世界は完璧ではないが、私にはちょうどいい」
bluesky

你的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 出來
先在你能啟動的終端裡執行:

# 把當前環境全部導出到文件
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

親測有效~

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。