跳至內容

Steam

出自 Arch Linux 中文维基

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

注意:對於 Linux 平台,Steam 只支持最新的 Ubuntu 或 Ubuntu 的長期支持版本[1][2]。如果在 Arch Linux 上使用 Steam 遇到問題,請不要向 Valve 尋求支持。

安裝

[編輯 | 編輯原始碼]

啟用 multilib 倉庫並安裝 steam 軟體包(推薦),也可以安裝 steam-native-runtime 以使用由原生系統庫驅動的 Steam(通過 steam-native 啟動),參閱/疑難解答#Steam runtime

注意:第一次安裝時可能需要選擇 32 位 Vulkan 驅動程序軟體包。默認情況下,pacman 會按字母順序選擇 lib32-amdvlk,這可能會帶來問題,例如:如果不小心為不同廠商的顯卡安裝了該驅動,會導致 Vulkan 無法使用;或者即使使用了 AMD 顯卡,如果沒有和 amdvlk 一起安裝,也可能出問題。請參考 Vulkan#安裝來選擇適合顯卡的正確驅動。

在 Arch Linux 上運行 Steam 需要滿足以下需求:

SteamCMD

[編輯 | 編輯原始碼]

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

目錄結構

[編輯 | 編輯原始碼]

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

庫文件夾

[編輯 | 編輯原始碼]

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

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

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

注意:為使從 flathub 安裝的 Steam 能夠添加另外的驅動器,用戶必須授予 Steam 客戶端訪問該驅動器所在掛載點的權限,可以使用 flatsealAUR 等工具。

用法

[編輯 | 編輯原始碼]
steam [ -options ] [ steam:// URL ]

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

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

啟動選項

[編輯 | 編輯原始碼]

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

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

示例

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

提示與技巧

[編輯 | 編輯原始碼]

最小化啟動

[編輯 | 編輯原始碼]

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

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

小模式

[編輯 | 編輯原始碼]

Steam 支持一個最小化的替代 UI,僅僅包含您的遊戲列表——隱藏了商店、社區和封面合集視圖均被隱藏。可通過查看 > 小模式切換到該模式,通過查看 > 大模式回到標準模式。

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 > 設置 > 兼容性。你可以為了上述那些沒有被 Valve 公司列入白名單的遊戲啟用 Steam Play。

如果開發者激活,Proton 支持 Easy Anti Cheat 集成,但是 EAC 可能需要某個特定修補版本的 glibc:如果某個遊戲據報告可以運行而在您的設備上卻不行,請嘗試使用 Steam Flatpak,因為其附帶了修補的 glibc。另外,設置 procfs 掛載選項 hidepid 為一個加固值可能會導致 Easy Anti-Cheat 失敗,並顯示錯誤信息「Launch Error: 261」。

強制使用 Proton

[編輯 | 編輯原始碼]

如果需要為某個遊戲啟用 Proton 或某特定版本的 Proton,右鍵該遊戲,選擇屬性 > 兼容性 > 強制使用特定 Steam Play 兼容性工具,選擇需要的版本。這種做法也可以強制使一個具有 Linux 接口的遊戲運行 Windows 版本。

使用 Steam 外的 Proton

[編輯 | 編輯原始碼]

您可以安裝 proton-cachyosAUR,但是需要一些額外的配置才能在 Steam 上良好運行。想要了解 Steam 如何識別已安裝的 Proton 的更多細節,請參閱 Proton GitHub

提示:archlinuxcn 源包含一個 protonCNRepo 軟體包,不同於 proton-cachyosAUR,您也可以安裝此軟體包以節省時間。

Steam Input

[編輯 | 編輯原始碼]

要啟用控制器的 Steam Input 功能,請轉到「Steam > 設置 > 控制器 > 外部手柄設置」。在這裡,您會找到與您的控制器對應的「啟用Steam Input」開關。

Steam Input Configurator

[編輯 | 編輯原始碼]

此頁面或章節適合移動到 Steam Input Configurator

附註: 沒有理由在此處保留如此大的文本,它可以放在自己的文章中(在 Talk:Steam 討論)

詳見Steam Input Configurator以獲取配置器使用說明。

當 SIC 為控制器啟用時,會出現幾個不同的控制器設備:

  • 虛擬 Steam 控制器,用於支持 Steam Input API 的遊戲。所有重映射和 Steam 特定功能均可用。
  • 表示模擬 Xbox 360 控制器的 evdev 設備,用於不支持 Steam Input 的遊戲。基本重映射生效。
  • 原始控制器 evdev 設備,其輸入通過 SIC 傳遞。重映射未生效,但遊戲應默認使用 360 控制器。
  • 上述兩個設備的操縱杆模擬設備。

SIC 的行為取決於上下文:

  • 當啟動支持 Steam Input API 的遊戲時,SIC 使用原生模式。遊戲接收「動作」而非原始輸入。
    • 這適用於在 Proton 中運行且會在 Windows 上使用 Steam Input 的遊戲。
    • 理論上不需要,但模擬的 360 控制器仍然存在。
    • 遊戲可選擇同時支持 Steam Input 和傳統輸入 API 庫(底層使用 evdev 和操縱杆)。當遊戲通過 Steam 啟動且為控制器啟用 SIC 時,Steam Input 優先級更高。
    • 遊戲也可選擇僅支持 Steam Input。例如在《Among Us》中,除非運行 SIC,否則遊戲手柄無法工作。
  • 當啟動不支持 Steam Input 的遊戲時,它(不知情地)在傳統模式下使用 SIC。遊戲接收來自看似 360 控制器的原始輸入,但這些輸入實際由 SIC 偽造以模擬原生模式的行為。
    • 這適用於使用 evdev 或操縱杆的原生遊戲,以及通過 Proton 運行的使用 DirectInput 或 XInput 的 Windows 遊戲。
  • 當啟動既不支持 Steam Input 也不支持其他遊戲手柄 API 的遊戲時,SIC 可激活配置文件以模擬遊戲手柄支持。
  • 當 Big Picture 獲得焦點時,當前 Big Picture 配置文件生效(不可配置)。
  • 當其他任何程序獲得焦點時,當前桌面配置文件生效,可通過「Steam > 設置 > 控制器 > 桌面布局」配置。
  • 當任何程序獲得焦點時,可通過「Steam > 設置 > 控制器 > 引導按鈕和弦布局」配置額外的全局綁定(在 Steam Deck 上不可用)。

遊戲根據其手柄支持程度進行評級(取決於控制器型號):

  • 支持您的控制器:表示遊戲具有完整控制器支持。即使遊戲不使用 Steam Input API 也可實現;重點在於無障礙性,無論 API 如何。
  • 大部分可用您的控制器:表示遊戲具有部分手柄支持。即使遊戲使用 Steam Input API,某些部分(如《軍團要塞2》中)仍無法訪問,導致此評級。
  • 不支持控制器:表示遊戲沒有原生手柄支持。
  • 未知控制器支持:表示 Valve 尚未驗證該遊戲的控制器支持。

當遊戲沒有完整手柄支持時,SIC 會嘗試填補空白。例如在需要點擊操作的《Bloons Tower Defense 5》中,Steam 會自動激活「鍵盤(WASD)和滑鼠」配置文件,讓您能用遊戲手柄移動和點擊。

推薦 Steam Input 用法

[編輯 | 編輯原始碼]

使用總結:

  • 啟用「配置支持」建議用於增強手柄功能,如自定義重映射或自動修復(如任天堂式按鈕重映射或鍵盤/滑鼠)。
  • 對於某些遊戲,如果它們不支持傳統遊戲手柄 API,則啟用此功能是必需的。
  • 默認情況下,如果啟用此功能,則控制器無法用於非 Steam 遊戲,因為 360 控制器優先於原始控制器設備,但默認桌面配置禁用按鈕。要修復此問題,您可以:
    • 讓配置更改動作集。某些官方桌面配置在按住開始按鈕時會切換到遊戲手柄模式。如果您的控制器配置無此功能,可添加新動作集,將其設為包含遊戲手柄按鈕,向開始按鈕添加「額外命令」,設為「更改動作集」,並設置該額外命令在長按時激活。
    • 將桌面配置文件設為「遊戲手柄」模板。這將傳遞輸入到 360 控制器,使默認設備可用於其他程序。
    • 讓其他程序使用原始設備(如果支持)。注意遊戲將無法受益於 Steam Input 重映射。
    • 禁用整個功能,使 Steam 完全不創建 360 控制器。注意 Steam 遊戲將無法受益於增強的手柄支持。
    • 使用其他遊戲時關閉 Steam。

禁用 Steam Input

[編輯 | 編輯原始碼]

如果您希望完全禁用 Steam Input,請使用 -nojoy 參數啟動 Steam,並單獨為每個遊戲禁用 Steam Input,因為不存在全局選項。

參見 HiDPI#Steam

無窗口管理器的大屏幕模式

[編輯 | 編輯原始碼]

欲從顯示管理器Gamescope混成器直接以大屏幕模式啟動 Steam:

/usr/share/wayland-sessions/steam-big-picture.desktop
[Desktop Entry]
Name=Steam 大屏幕模式
Comment=以大屏幕模式啟動 Steam
Exec=/usr/bin/gamescope -e -- /usr/bin/steam -tenfoot
Type=Application
注意:其中 -tenfoot 選項告訴 Steam 以大屏幕模式啟動。
警告:「切換到桌面」菜單項會導致會話軟鎖。要返回顯示管理器,需在終端運行 steam -shutdown

Steam 皮膚

[編輯 | 編輯原始碼]
注意:2023年6月發布了新的Steam UI。未針對此新UI更新的皮膚將無效。

使用皮膚可以自定義 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 庫文件夾,然後點擊加號添加庫文件夾。

有三種文件系統支持被 Windows 和 Linux 讀寫。

更多信息參見 Proton wiki。欲從 NTFS 文件系統啟動遊戲,請遵循 Steam/疑難解答#Steam Library in NTFS partition.

使用 NTFS 的不足之處在於會經常發生著色器緩存文件夾損壞,報錯信息為 ntfs3: sdb6 ino=1921f, steamapprun_pipeline_cache Looks like your dir is corrupt. 且無法在 Linux 下修復,需要在 Windows 下使用 chkdsk 修復。

該文件系統的缺點之一是不區分大小寫。可能會出現類似的提示信息:SteamLibrary has both 'SteamApps' and 'steamapps' directories. This will cause problems. Please fix manually and only keep 'steamapps'。參見 issue #7665

此外,在 exFAT 上創建符號連結也存在問題,因此你無法像在 NTFS 方法中那樣使用符號連結 compatdata 的方法。

該文件系統可以幾乎無痛使用。唯一要注意的是 Linux 目前不支持 UDF 2.50+ 版本的寫入。可以使用 GParted 創建 UDF 文件系統,其會是 2.01 版本。

加速著色器預編譯

[編輯 | 編輯原始碼]

某些情況下著色器預編譯可能僅使用一個核心,用戶可以修改此類行為,例如改為 8 個核心:

~/.steam/steam/steam_dev.cfg
unShaderBackgroundProcessingThreads 8

Proton 以外的其它兼容層

[編輯 | 編輯原始碼]

除了 Proton/Wine,還有其他兼容工具可用:

  • Luxtorpeda — 使用原生 Linux 引擎運行遊戲。
https://luxtorpeda-dev.github.io/ || luxtorpeda-gitAUR
  • Boxtron — 使用原生 Linux 的 DOSBox 運行 DOS 遊戲。
https://github.com/dreamer/boxtron || boxtronAUR

也可以使用 protonup-qtAUR 來管理這些工具:

  1. 關閉 Steam
  2. 安裝 protonup-qtAUR
  3. 打開 protonup-qt 並安裝你想要的兼容工具
  4. 啟動 Steam
  5. 在遊戲的「屬性」窗口中,勾選「強制使用特定的 Steam Play 兼容工具」,然後選擇你想要的工具。


使用獨立顯卡運行遊戲

[編輯 | 編輯原始碼]

在使用混合圖形技術的筆記本電腦上,Steam 默認使用集成顯卡運行遊戲,欲使用性能更為強勁的獨立顯卡運行遊戲,請參閱 PRIME#PRIME GPU 分載

Flatpak

[編輯 | 編輯原始碼]
注意:通過 Flatpak 從 Flathub 安裝 Steam 可以修復客戶端中遇到的許多問題,但從長遠來看,可能需要使用記錄較少的不同的故障排除方法。

可以通過 FlatpakFlathub 安裝 Steam,應用名為 com.valvesoftware.Steam。以下是為當前用戶安裝並運行的最簡單方式:

$ 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 版 Steam 不支持使用自定義主題。此外,也暫時無法通過 optirunprimusrun 運行遊戲,詳情參見 Issue#869

通過 Flatpak 安裝的 Steam 無法訪問主目錄,而強行覆蓋此限制將導致 Steam 無法運行,因為這不安全。不過,可以自由添加主目錄以外的其他目錄。如果要添加一個外部遊戲庫,請運行以下命令添加目錄權限:

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

啟動 Flatpak 版 Steam 時,可能會提示你安裝 steam-devices 軟體包。該軟體包目前並不存在,但可以改為安裝 game-devices-udevAUR,詳見遊戲手柄#設備權限

Flatpak 的 CJK 字體問題

[編輯 | 編輯原始碼]

如果在遊戲中遇到中日韓文字無法顯示的問題,這可能是因為 org.freedesktop.Platform 默認不包含所需字體。首先嘗試掛載本地字體目錄:

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

如果無效,可以嘗試直接將字體文件複製到 org.freedesktop.Platform 的目錄中來使其可用,例如複製到:

/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

Flatpak 版 Steam 啟動(run)問題

[編輯 | 編輯原始碼]

啟動後,Steam 會嘗試下載一些文件,並顯示一個進度條。如果此時崩潰,你可以嘗試為 Flatpak 軟體包授予額外權限:

$ flatpak permission-set background background com.valvesoftware.Steam yes
$ flatpak run com.valvesoftware.Steam

也可以安裝 flatseal 工具控制其權限。

降低顯存占用的 Steam 設置

[編輯 | 編輯原始碼]

這對顯存較小的顯卡很有幫助。

複製一份 Steam 桌面項

$ cp /usr/share/applications/steam.desktop ~/.local/share/applications/steam_minimal.desktop

修改新複製文件的 Exec=Name= 行:

~/.local/share/applications/steam_minimal.desktop
Name=Steam Minimal
Exec=/usr/bin/steam -cef-disable-gpu-compositing -cef-disable-gpu steam://open/minigameslist %U

當啟動 Steam Minimal 時,您會看到一個索然無味的界面,不過已經足以安裝和運行遊戲。運行原先標準的 Steam 則會啟動完整的 Steam 客戶端。

疑難解答

[編輯 | 編輯原始碼]

參見 Steam/疑難解答

另見

[編輯 | 編輯原始碼]