本文介紹如何在Linux系統安裝Flatpak版Steam客戶端,以及特殊技巧。
Steam客戶端有二種裝法, 原生Steam套件是較傳統的方法,Flatpak版則是新興的方法。
Flatpak版Steam的優點:
- 不論您是Ubuntu/Fedora/Arch Linux都能裝到最新版Steam
- 方便immutable distro(例如Fedora Silverblue、VanillaOS、openSUSE MicroOS、ChromeOS)的系統,或是採用muslc(例如Alpine、Gentoo)的系統安裝Steam
- 沙盒權限能確保遊戲程式不會亂讀取硬碟的檔案
- 不需要給系統開32位元函式庫也能裝Steam,容器與系統套件隔離,省去安裝額外套件的麻煩
雖然Flatpak不是Steam官方優先支援的格式,但Valve的開發人員仍會在Github為Flatpak用戶提供幫助,例如 Github Wiki有詳細的說明文件。
但是Flatpak版Steam也有缺點:如果你的遊戲輔助工具沒有考慮到Flatpak的設計,可能會無法跟沙盒內遊戲通訊,導致各種問題。折衷辦法是同時安裝原生Steam套件和Flatpak版Steam套件,並設定共用遊戲收藏庫的目錄。
註:Steam OS 3.0雖然讓你用Flatpak安裝軟體防止破壞系統,但Steam本體並不是以Flatpak格式安裝的,本文的內容並不適用於Steam OS。
1. 安裝Flatpak版Steam客戶端#
如果您的顯示卡為Nvidia,請記得先安裝Nvidia專有驅動: Ubuntu| Arch Linux
開啟終端機,安裝 Flatpak。再從Flathub安裝Steam。
flatpak install --user flathub com.valvesoftware.Steam
安裝好後,Steam圖示應該會出現在應用程式列表,點選開啟。
等待Steam主程式更新完成
點選Login to an existing account,填入驗證碼,登入Steam帳號
點選Steam左上角 → Settings → Interface,切換語言為中文。
若同時安裝原生Steam套件和Flatpak版Steam套件,有些程式可能會混亂。遊戲程式「開啟Steam」的預設動作可以用xdg-mime切換指定要開啟哪個版本的客戶端:
# Flatpak版Steam
xdg-mime default com.valvesoftware.Steam.desktop x-scheme-handler/steam
# 原生版Steam
xdg-mime default steam.desktop x-scheme-handler/steam
2. 設定Flatpak版Steam Proton#
Steam Play這個計畫讓玩家在購買遊戲後能於Linux、Windows、macOS遊玩,背後使用的技術是「Steam Proton」,基於Wine研發的轉譯層,Valve自家的Steam Deck掌機也有用到Steam Proton技術。
點選Steam左上角設定 → 相容性,勾選「為其他產品啟用Steam Play」,之後選擇下載最新版的Proton(不要選Experimental),再按下確定。
點選Steam左上角設定 → 離開。重新啟動Steam,然後嘗試下載Windows平台的遊戲,Proton就會一併安裝了。
於是您就可以在Linux上玩Windows遊戲了!部份遊戲第一次啟動需用GPU預先處理Vulkan著色器,請耐心等待。
Steam Proton其實就是Wine,它同樣有WINEPREFIX,路徑位於~/.var/app/com.valvesoftware.Steam/data/Steam/steamapps/compatdata/Steam遊戲ID/pfx/
,即遊戲收藏庫的路徑。如果要使用
ProtonUP-QT調整環境的話,就是指定這個WINEPREFIX再做操作。
你也可以手動 將非Steam的遊戲exe程式加入到Steam客戶端。
3. Flatpak版Steam的遊戲收藏庫路徑#
用Flatpak裝Steam的話,遊戲收藏庫位於~/.var/app/com.valvesoftware.Steam/data/Steam/steamapps/
。為了安全性考量,Flatpak版的Steam預設只能存取使用者家目錄,無法存取其他硬碟。
如果您想移動Steam收藏庫,或是沿用舊有的Steam收藏庫,就得開放存取電腦特定目錄的權限。
- 例如,您的第二個硬碟已經有
Steam
這個目錄,而它的絕對路徑是/run/media/user/SSD2/Steam
,那麼就使用flatpak override
指令開放存取權限:
flatpak override --user --filesystem="/run/media/user/SSD2/Steam" com.valvesoftware.Steam
點選Steam左上角 → 離開Steam。然後重新啟動Steam,即可在左上角 → 設定 → 下載 → Steam收藏庫資料夾,新增其他硬碟的收藏庫資料夾了。
雖然說遊戲收藏庫可以共用,但Steam原生套件和Flatpak的客戶端的資料無法共用。這時可以用符號連結的方式,將Steam原生套件的
.steam
目錄指向Flatpak的目錄:
ln -s ~/.var/app/com.valvesoftware.Steam/.steam .steam
4. 新增Flatpak Steam遊戲捷徑到桌面#
原生版Steam對遊戲按右鍵,就會新增捷徑到桌面,讓您點二下啟動遊戲。
但若是Flatpak版Steam,新增捷徑需要額外技巧。參考自 Steam community
- 開放Steam存取桌面目錄的權限
flatpak override --user --filesystem=/home/$USER/桌面/ com.valvesoftware.Steam
# 或者
flatpak override --user --filesystem=/home/$USER/Desktop/ com.valvesoftware.Steam
於Steam遊戲收藏庫對遊戲點右鍵 → 新增桌面捷徑。桌面就會出現遊戲捷徑。
不過這樣是無法啟動的,因為Steam新增捷徑的指令不適用於Flatpak環境。切換到桌面目錄,編輯桌面捷徑檔案:
cd ~/Desktop
vim <遊戲名稱>.desktop
- 找到
Exec=
這一段,通常是長這樣,這是啟動遊戲的指令+遊戲在Steam商店上的ID
Exec=steam steam://rungameid/236390
- 在
steam steam://
前面加上Flatpak的指令:
Exec=flatpak run --command=/app/bin/steam-wrapper --file-forwarding com.valvesoftware.Steam steam://rungameid/236390
- 若要自訂捷徑圖示:將圖示檔案放到
~/.local/share/icons/
,再修改Icon=
這行指定圖示所在路徑:
Icon=/home/user/.local/share/icons/wtlauncher.ico
- 如果您要新增遊戲圖示到Linux「應用程式列表」而非桌面,那麼就把剛剛寫的.desktop檔案複製到
~/.local/share/applications/
:
cp ~/Desktop/<遊戲名稱>.desktop ~/.local/share/applications/<遊戲名稱>.desktop
5. 開機自動啟動Flatpak版Steam#
如果要開機自動啟動Steam,將Steam的.desktop複製到~/.config/autostart
:
cp ~/.local/share/flatpak/app/com.valvesoftware.Steam/current/active/export/share/applications/com.valvesoftware.Steam.desktop ~/.config/autostart
如果要開機自動啟動特定Steam遊戲,參考上節新增遊戲捷徑到桌面,並修改為Flatpak指令後,將其複製到~/.config/autostart
cp ~/Desktop/<遊戲名稱>.desktop ~/.config/autostart/
6. 連接遊戲手把並啟用Steam Input#
Linux支援多款遊戲手把(controller),近代的羅技、Xbox、PS5手把通常插入就能直接使用。手把配合Steam Big Picture Mode使用效果更佳。
- Flatpak版Steam需參考 官方說明,手動將Steam的udev規則裝到系統:
cd /etc/udev/rules.d
sudo wget https://raw.githubusercontent.com/ValveSoftware/steam-devices/master/60-steam-input.rules
- 並安裝Steam Devices的原生套件
sudo apt install steam-devices
重開機,啟動Steam遊戲,應會自動偵測到遊戲手把,端看遊戲如何判定。
若有需求,Steam尚提供「Steam Input」的模擬輸入功能,可在設定 → 控制器區域進一步微調。
7. Flatpak版Steam除錯方式#
有時候MangoHud和Gamescope安裝後無法使用,得從終端機觀察錯誤訊息。
要查看除錯訊息,使用這個指令啟動Steam:flatpak run com.valvesoftware.Steam
有時候得查看Steam依賴的runtime版本是否有對上。用這個指令查看:
flatpak list --app --columns=application,runtime
撰文當下Steam依賴的runtime分支版為org.freedesktop.Platform/x86_64/23.08
,故安裝MangoHud和Gamescope的時候也必須選取該分支。
如何回報Steam客戶端bug#
Flatpak版Steam並非官方維護的專案,因此應優先到 flathub/com.valvesoftware.Steam儲存庫回報錯誤訊息。
最後才到Github儲存庫 ValveSoftware/steam-for-linux向官方回報你遇到的錯誤。