Steam

出自 Arch Linux 中文维基

Steam 是 Valve 公司推出的著名遊戲分發平台。

注意: 對於 Linux 平台,Steam 只支持 Ubuntu 的長期支持版本[1]。 因此,請不要向 Valve 公司提交 issue 以獲得 Steam 對 Arch Linux 的支持。

安裝[編輯 | 編輯原始碼]

啟用 multilib 倉庫並安裝 steam 軟體包。

你需要滿足下列要求從而在 Arch Linux 上運行 Steam:

SteamCMD[編輯 | 編輯原始碼]

安裝 steamcmdAUR 以使用命令行版本的 Steam

可選 Flatpak 安裝[編輯 | 編輯原始碼]

Steam 也可以作為 com.valvesoftware.Steam 使用 FlatpakFlathub 中安裝。使用 Flathub 倉庫和 flatpak 命令行安裝是目前最簡單的安裝方式:

 flatpak --user remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo
 flatpak --user install flathub com.valvesoftware.Steam
 flatpak run com.valvesoftware.Steam

目前 Flatpak 應用還不支持主題。並且你不能通過 optirun/primusrun 來運行遊戲,更多細節詳見 Issue#869

默認情況下通過 Flatpak 安裝的 Steam 不會有訪問你的家目錄的權限,並且由於安全問題,強行忽略此權限限制會導致 Steam 無法運行。不過,你可以自由地在家目錄之外添加一個目錄。如果你想添加一個外部庫,你可以運行下面的命令來添加:

flatpak --user override com.valvesoftware.Steam --filesystem=/path/to/directory

啟動使用 Flakpak 安裝的 steam 可能會發出警告有關安裝 steam-devices 軟體包的信息,此包暫不存在,可通過安裝 game-devices-udevAUR 來解決,參見 Gamepad#Device permissions.

Flatpak 的亞洲字體問題[編輯 | 編輯原始碼]

如果你遇到了遊戲中無法顯示亞洲字體的問題,這是因為 org.freedesktop.Platform 並沒有包含合適的字體文件進去。首先嘗試掛載你的本地字體:

flatpak run --filesystem=~/.local/share/fonts --filesystem=~/.config/fontconfig  com.valvesoftware.Steam

如果上述命令不起作用,考慮動手 hack 一下:直接將字體文件複製進 org.freedesktop.Platform 的目錄下以啟用字體,例如

# replace ? with your version and hash
/var/lib/flatpak/runtime/org.freedesktop.Platform/x86_64/?/?/files/etc/fonts/conf.avail
/var/lib/flatpak/runtime/org.freedesktop.Platform/x86_64/?/?/files/etc/fonts/conf.d 
/var/lib/flatpak/runtime/org.freedesktop.Platform/x86_64/?/?/files/share/fonts

目錄結構[編輯 | 編輯原始碼]

Steam 的默認安裝位置是 ~/.local/share/Steam。如果 Steam 無法找到該目錄,它會指導你重新安裝或選擇一個新的安裝位置。這篇文章使用 ~/.steam/root 符號連結來表示 Steam 的安裝位置。

庫文件夾[編輯 | 編輯原始碼]

每一個 Steam 應用都有一個獨一無二的應用 ID,你可以通過 Steam Store 的頁面路徑或在 SteamDB 中來找到它。

Steam 將遊戲安裝到 LIBRARY/steamapps/common/ 目錄下。庫文件夾 LIBRARY 一般會是 ~/.steam/root,但是你依然可以選擇擁有多個庫文件夾如 (Steam > Settings > Downloads > Steam Library Folders)。

為了 Steam 能夠正確識別遊戲,它需要在 LIBRARY/steamapps/ 目錄下找到 appmanifest_AppId.acf 文件。此清單文件使用了 KeyValues 格式,並且它的 installdir 的內容決定了遊戲的目錄名稱。

用法[編輯 | 編輯原始碼]

steam [ -options ] [ steam:// URL ]

對於可用的命令行選擇,詳見 Command Line Options article on the Valve Developer Wiki

Steam 也可以接受可選的 Steam URL,詳見 Steam browser procotol

啟動選項[編輯 | 編輯原始碼]

當你運行一個 Steam 遊戲時,Steam 會使用 Bash shell 執行它的 啟動命令。 為了讓你自由修改啟動命令,Steam 提供了 啟動選項啟動選項可以通過右鍵點擊你的遊戲庫中的遊戲,選擇屬性後點擊設置啟動選項進行修改。

默認情況下 Steam 只是簡單的把你設置的參數字符串添加到遊戲的啟動命令後。想要設置環境變量或者將一個啟動命令作為參數傳遞給另一個命令,你可以使用 %command% 以表示原啟動命令。

示例[編輯 | 編輯原始碼]

  • 僅設置參數: -foo
  • 設置環境變量: FOO=bar BAZ=bar %command% -baz
  • 設置與默認完全不同的命令: othercommand # %command%

提示與技巧[編輯 | 編輯原始碼]

最小化啟動[編輯 | 編輯原始碼]

在系統啟動時,使 Steam 以最小化方式自啟在系統托盤處是可以實現的,並且不會占據滑鼠焦點。僅僅需要添加 -silent 到自啟文件的參數列表中。

~/.config/autostart/steam.desktop
...
Exec=/usr/bin/steam -silent
...

fsync 補丁[編輯 | 編輯原始碼]

Valve 公司的 fsync 補丁為使用Proton或Wine運行的大型應用改進了性能。此補丁自Linux內核5.16版本以來,已經合併到了 vanilla 內核,只需使用最新的 Proton 或修改版 Wine 構建即可。若想使用支持fsync的早期的內核版本:

Proton Steam-Play[編輯 | 編輯原始碼]

Valve 公司開發了一個兼容性工具Proton,用來使 Steam 可以在 Wine 和其他額外組件上運行。這使得你可以運行很多原本只能在 Windows 平台上運行的遊戲 (詳見 compatibility list)。

此工具開源並且可以從 GitHub 獲得。Steam 將在 Steam Play 啟用後安裝它相適應的 Proton 版本。

Proton 需要在 Steam 客戶端啟用:Steam > 設置 > Steam Play。你可以為了上述那些沒有被 Valve 公司列入白名單的遊戲啟用 Steam Play。

如果需要的話,為了在啟動遊戲時強制啟用 Proton 或者指定一個確定的 Proton 版本,在遊戲處右擊,點擊 屬性 > 常規 > 強制使用特定 Steam Play 兼容性工具,然後選擇所需版本。這樣做同樣可以用來強制遊戲生成一個 Linux 入口用以運行 Windows 版本的遊戲。

你同樣可以從 AUR 通過安裝 protonAURproton-gitAUR 來安裝 Proton,但是需要一些額外的配置才能使 Steam 良好運行。想要了解 Steam 如何識別已安裝的 Proton 的更多細節,可以前往 Proton 的 GitHub 頁面。

無窗口管理器的大屏幕模式[編輯 | 編輯原始碼]

想要從 Display manager 運行 Steam 的大屏幕模式,你可以選擇以下任意一個方案:

  • 安裝 steamos-compositorAUR
  • 或者,安裝 steamos-compositor-plusAUR,這可以隱藏 Proton 遊戲啟動時惱人的顏色閃爍,並修復遊戲在後台運行的問題。
  • 手動添加一個 Steam 入口 (但是你會失去 Steam 的混合平台優勢:主要體現在你不能在大屏幕模式下使用鍵盤或手柄控制):

創建一個 /usr/share/xsessions/steam-big-picture.desktop 文件,其中包含:

/usr/share/xsessions/steam-big-picture.desktop
[Desktop Entry]
Name=Steam Big Picture Mode
Comment=Start Steam in Big Picture Mode
Exec=/usr/bin/steam -bigpicture
TryExec=/usr/bin/steam
Icon=
Type=Application

Steam 皮膚[編輯 | 編輯原始碼]

使用皮膚可以自定義 Steam 界面。皮膚可以被位於 ~/.steam/root 的界面定義文件所覆蓋。

想要安裝一個皮膚:

  1. 將皮膚的目錄放於 ~/.steam/root/skins
  2. 按照 Steam > 設置 > 界面 依次點擊並選擇該皮膚。
  3. 重啟 Steam。

你可以在 Steam 論壇 獲得比較完備的皮膚列表。

注意: 使用一個過期的皮膚可能會引起一些可視化錯誤。

自創皮膚[編輯 | 編輯原始碼]

幾乎所有的 Steam 風格會定義在 ~/.steam/root/resource/styles/steam.styles (此文件超過 3,500 行)。對於一個可以被 Steam 識別的皮膚,它需要自己的 resource/styles/steam.styles 文件。 當一個 Steam 的更新改變了官方的 steam.styles 文件,你的皮膚可能會過期,會有造成可視化錯誤的潛在風險。

詳見 ~/.steam/root/skins/skins_readme.txt 以獲得如何創建皮膚的初步指引。

改變 Steam 的通知位置[編輯 | 編輯原始碼]

默認情況下 Steam 的通知會在屏幕底端右側出現。

你可以改變 Steam 通知出現的位置,通過更改 Notifications.PanelPosition 文件,具體位於

  • resource/styles/steam.styles 以調整桌面通知
  • resource/styles/gameoverlay.styles 以調整遊戲中通知

以上兩個文件都將在 Steam 啟動時被覆寫,且 steam.styles 只會在啟動時被讀取。

注意: 一些遊戲並不遵守位於 gameoverlay.styles 裡的設置。如《幽浮:未知敵人》。

使用一個皮膚[編輯 | 編輯原始碼]

你可以創建一個皮膚去將通知位置改變成你想要的那樣。比如你想要將位置設置成頂部右側:

$ cd ~/.steam/root/skins
$ mkdir -p Top-Right/resource
$ cp -r ~/.steam/root/resource/styles Top-Right/resource
$ sed -i '/Notifications.PanelPosition/ s/"[A-Za-z]*"/"TopRight"/' Top-Right/resource/styles/*

實時更新[編輯 | 編輯原始碼]

gameoverlay.styles 文件可以在 Steam 運行時更改,這允許你對不同遊戲設置不同的通知位置。

~/.steam/notifpos.sh
sed -i "/Notifications.PanelPosition/ s/\"[A-Za-z]*\"/\"$1\"/" ~/.steam/root/resource/styles/gameoverlay.styles

由此 #啟動選項 應該像下面這樣:

~/.steam/notifpos.sh TopLeft && %command%

Steam 遠程同樂[編輯 | 編輯原始碼]

注意: Steam 家庭流媒體 已更新為 Steam 遠程同樂

Steam 內置對於 遠程同樂 的支持。

前往 Steam 社區指南 以了解如何在 Linux 上設置無頭模式的流媒體服務。

Steam Controller[編輯 | 編輯原始碼]

通常一個 Steam Controller 手柄需要使用 Steam 界面。不過在非 Steam 原生的 Linux 遊戲中這種界面並不很實用。對此,當 Steam 客戶端運行時,其會保持一個「桌面配置」。如果你有 Steam Controller 手柄,請在桌面配置中將其設置為通用 XBOX 控制器。只要 Steam 客戶端在運行,你可以在其他遊戲中使用 Steam Controller 手柄,例如 GOG 的遊戲, 就像一個 XBOX 手柄。請確保在「常規手柄設置」已經選擇了你的手柄類型。

使用 Proton 時與 Windows 共用遊戲[編輯 | 編輯原始碼]

如果使用 Proton(Steam Play)啟動遊戲,並且由於某些原因仍然保留在Windows上安裝的版本(例如某些遊戲的反作弊系統有問題,或是要與Windows對比測試),那麼可能會想把遊戲存儲在同一個分區裡,而不是每個作業系統裡分別保留一個遊戲副本。關於如何配置,詳見 https://github.com/ValveSoftware/Proton/wiki/Using-a-NTFS-disk-with-Linux-and-Windows

若要在Steam的遊戲庫中添加其它文件夾,選擇 Steam → 設置 → 下載 → STEAM 庫文件夾,然後點擊加號添加庫文件夾。

疑難解答[編輯 | 編輯原始碼]

參見 Steam/Troubleshooting.

另見[編輯 | 編輯原始碼]