Steam - Arch Linux 中文维基

跳至內容

# Steam

出自 Arch Linux 中文维基

相關文章

- Steam/疑難解答
- Steam/遊戲疑難解答
- 遊戲
- 遊戲手柄
- 遊戲列表
- Gamescope

翻譯狀態：

- 本文（或部分內容）譯自 Steam，最近一次同步於 2025-08-03，若英文版本有所更改，則您可以幫助同步與翻譯更改的內容。
- 您可以在 ArchWiki 的對應頁面找到本文翻譯的原始修訂歷史。
- 本文可能與英文原文存在出入。

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

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

## 安裝

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

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

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

- 安裝 32 位版本的 OpenGL 圖形驅動。
- 生成 en_US.UTF-8 語言環境，以避免非法指針錯誤。
- 若您要將庫文件夾或非 Steam 遊戲添加到您的 Steam 庫，請安裝一個帶有文件選擇器的 XDG Desktop Portal 後端。
- 因其 GUI 大量使用了 Arial 字體，您需要做以下三者其一：
  - 使用一個自由（免費，free）的替代品 ttf-liberation包。
  - 按照微軟字體安裝原字體。
  - 按照 Steam/疑難解答#Text is corrupt or missing 使用一個不同的字體。
- 安裝 wqy-zenhei包 以支持亞洲地區語言。
- 若使用 systemd-networkd 管理網絡，安裝 lib32-systemd包 才能讓Steam連上自己的伺服器。
- 若將 systemd-resolved 用於 DNS，請按照這些步驟修復 `/etc/resolv.conf` 以讓 Steam 解析主機名。
- 若使用大屏幕模式（Steam Deck UI），可能需要 NetworkManager 讓某些與網絡有關面板正常運行。
- 必須調大 `vm.max_map_count` 以讓某些遊戲免於崩潰，參見遊戲#增大 vm.max_map_count。

### 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的早期的內核版本：

- 安裝 linux-zen包 內核，其從 5.2 版本開始已包括 fsync 補丁。[3]
- 安裝 linux-pfAUR 或 linux-pf-gitAUR 內核。

### 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 特定功能均可用。
  - 請勿與實體控制器 Valve Steam Controller 混淆。
- 表示模擬 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

參見 HiDPI#Steam。

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

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

- 安裝 gamescope包
- 創建具有以下內容的桌面項：

    /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 讀寫。

#### NTFS

更多信息參見 Proton wiki。欲從 NTFS 文件系統啟動遊戲，請遵循 Steam/疑難解答#位於 NTFS 分區的 Steam 存儲庫.

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

#### exFAT

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

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

#### UDF

該文件系統可以幾乎無痛使用。唯一要注意的是 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 可以修復客戶端中遇到的許多問題，但從長遠來看，可能需要使用記錄較少的不同的故障排除方法。

可以通過 Flatpak 從 Flathub 安裝 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 不支持使用自定義主題。此外，也暫時無法通過 `optirun` 或 `primusrun` 運行遊戲，詳情參見 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/疑難解答。

## 另見

- Gentoo:Steam
- PCGamingWiki 中的 The Big List of DRM-Free Games on Steam
- Fandom 中的 List of DRM-free games
- Steam 中支持 SteamOS + Linux 的作品
- Proton：支持 Steam Play 運行的基於 Wine 以及其他額外組件的兼容性工具
- ProtonDB：社區維護的 Linux 兼容性資料庫

分類：​

- 遊戲
- 使用「模板:Move」標記的頁面或章節

Steam
新增話題