快轉到主要內容

Linux Flatpak版Steam客戶端安裝教學

分類   Linux系統 Linux玩遊戲
標籤   Steam Flatpak Linux
🗓️ 民國113年 甲辰年
✍ 切換正體/簡體字
目錄

本文介紹如何在Linux系統安裝Flatpak版Steam客戶端,以及特殊技巧。

Steam客戶端有二種裝法, 原生Steam套件是較傳統的方法,Flatpak版則是新興的方法。

Flatpak版Steam的優點:

  1. 不論您是Ubuntu/Fedora/Arch Linux都能裝到最新版Steam
  2. 方便immutable distro(例如Fedora Silverblue、VanillaOS、openSUSE MicroOS、ChromeOS)的系統,或是採用muslc(例如Alpine、Gentoo)的系統安裝Steam
  3. 沙盒權限能確保遊戲程式不會亂讀取硬碟的檔案
  4. 不需要給系統開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客戶端
#

  1. 如果您的顯示卡為Nvidia,請記得先安裝Nvidia專有驅動: Ubuntu Arch Linux

  2. 開啟終端機,安裝 Flatpak。再從Flathub安裝Steam。

flatpak install --user flathub com.valvesoftware.Steam
  1. 安裝好後,Steam圖示應該會出現在應用程式列表,點選開啟。

  2. 等待Steam主程式更新完成

  3. 點選Login to an existing account,填入驗證碼,登入Steam帳號

  4. 點選Steam左上角 → Settings → Interface,切換語言為中文。

  5. 若同時安裝原生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技術。

  1. 點選Steam左上角設定 → 相容性,勾選「為其他產品啟用Steam Play」,之後選擇下載最新版的Proton(不要選Experimental),再按下確定。

  2. 點選Steam左上角設定 → 離開。重新啟動Steam,然後嘗試下載Windows平台的遊戲,Proton就會一併安裝了。

  3. 於是您就可以在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收藏庫,就得開放存取電腦特定目錄的權限。

  1. 例如,您的第二個硬碟已經有Steam這個目錄,而它的絕對路徑是/run/media/user/SSD2/Steam,那麼就使用flatpak override指令開放存取權限:
flatpak override --user --filesystem="/run/media/user/SSD2/Steam" com.valvesoftware.Steam
  1. 點選Steam左上角 → 離開Steam。然後重新啟動Steam,即可在左上角 → 設定 → 下載 → Steam收藏庫資料夾,新增其他硬碟的收藏庫資料夾了。

  2. 雖然說遊戲收藏庫可以共用,但Steam原生套件和Flatpak的客戶端的資料無法共用。這時可以用符號連結的方式,將Steam原生套件的.steam目錄指向Flatpak的目錄:

ln -s ~/.var/app/com.valvesoftware.Steam/.steam .steam

4. 新增Flatpak Steam遊戲捷徑到桌面
#

原生版Steam對遊戲按右鍵,就會新增捷徑到桌面,讓您點二下啟動遊戲。

但若是Flatpak版Steam,新增捷徑需要額外技巧。參考自 Steam community

  1. 開放Steam存取桌面目錄的權限
flatpak override --user --filesystem=/home/$USER/桌面/ com.valvesoftware.Steam

# 或者
flatpak override --user --filesystem=/home/$USER/Desktop/ com.valvesoftware.Steam
  1. 於Steam遊戲收藏庫對遊戲點右鍵 → 新增桌面捷徑。桌面就會出現遊戲捷徑。

  2. 不過這樣是無法啟動的,因為Steam新增捷徑的指令不適用於Flatpak環境。切換到桌面目錄,編輯桌面捷徑檔案:

cd ~/Desktop
vim <遊戲名稱>.desktop
  1. 找到Exec=這一段,通常是長這樣,這是啟動遊戲的指令+遊戲在Steam商店上的ID
Exec=steam steam://rungameid/236390
  1. steam steam://前面加上Flatpak的指令:
Exec=flatpak run --command=/app/bin/steam-wrapper --file-forwarding com.valvesoftware.Steam steam://rungameid/236390
  1. 若要自訂捷徑圖示:將圖示檔案放到~/.local/share/icons/,再修改Icon=這行指定圖示所在路徑:
Icon=/home/user/.local/share/icons/wtlauncher.ico
  1. 如果您要新增遊戲圖示到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使用效果更佳。

  1. Flatpak版Steam需參考 官方說明,手動將Steam的udev規則裝到系統:
cd /etc/udev/rules.d
sudo wget https://raw.githubusercontent.com/ValveSoftware/steam-devices/master/60-steam-input.rules
  1. 並安裝Steam Devices的原生套件
sudo apt install steam-devices
  1. 重開機,啟動Steam遊戲,應會自動偵測到遊戲手把,端看遊戲如何判定。

  2. 若有需求,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向官方回報你遇到的錯誤。

相關文章

Linux系統ReShade光影 + Steam Proton遊戲的裝法
分類   Linux系統 Linux玩遊戲
標籤   Steam Linux
讓Linux遊戲畫面更炫砲,vkBasalt遊戲特效濾鏡安裝
分類   Linux系統 Linux玩遊戲
標籤   Vulkan Linux Steam
輕量螢幕錄影軟體GPU Screen Recorder,Linux版Nvidia ShadowPlay
分類   Linux系統 Linux玩遊戲
標籤   Nvidia Steam Linux

留言板

此處提供二種留言板。點選按鈕,選擇您覺得方便的留言板。要討論程式碼請用Giscus,匿名討論請用Disqus。

這是Giscus留言板,需要Github帳號才能留言。支援markdown語法,若要上傳圖片請貼Imgur或Postimages。您的留言會在Github Discussions向所有人公開。

這是Disqus留言板,您可能會看到Disqus強制投放的廣告。為防止垃圾內容,有時留言可能會被系統判定需審核,導致延遲顯示,請見諒。若要上傳圖片請善用圖床網站。