Steam/zh: Difference between revisions
Updating to match new version of source page |
No edit summary |
||
| (11 intermediate revisions by 2 users not shown) | |||
| Line 21: | Line 21: | ||
要安装 [[Special:MyLanguage/Steam|Steam]] 软件包并启用所有必要的系统选项以使其运行,请将以下内容添加到您的系统配置中: | 要安装 [[Special:MyLanguage/Steam|Steam]] 软件包并启用所有必要的系统选项以使其运行,请将以下内容添加到您的系统配置中: | ||
{{file| | {{file|3=<nowiki> | ||
<nowiki> | |||
programs.steam = { | programs.steam = { | ||
enable = true; | enable = true; | ||
| Line 29: | Line 28: | ||
# Optional: If you encounter amdgpu issues with newer kernels (e.g., 6.10+ reported issues), | # Optional: If you encounter amdgpu issues with newer kernels (e.g., 6.10+ reported issues), | ||
# you might consider using the LTS kernel or a known stable version. | # you might consider using the LTS kernel or a known stable version. | ||
# boot.kernelPackages = pkgs. | # boot.kernelPackages = pkgs.linuxPackages; # Example for LTS | ||
</nowiki> | </nowiki>|name=/etc/nixos/configuration.nix|lang=nix}} | ||
}} | |||
[https://news.ycombinator.com/item?id=41549030 关于内核 6.10 问题的轶事] | [https://news.ycombinator.com/item?id=41549030 关于内核 6.10 问题的轶事] | ||
| Line 49: | Line 47: | ||
基本 Steam 功能可以直接在 {{nixos:option|programs.steam}} 属性集中启用: | 基本 Steam 功能可以直接在 {{nixos:option|programs.steam}} 属性集中启用: | ||
{{file| | {{file|3=<nowiki> | ||
<nowiki> | |||
programs.steam = { | programs.steam = { | ||
enable = true; # Master switch, already covered in installation | enable = true; # Master switch, already covered in installation | ||
| Line 57: | Line 54: | ||
# Other general flags if available can be set here. | # Other general flags if available can be set here. | ||
}; | }; | ||
</nowiki>|name=/etc/nixos/configuration.nix|lang=nix}} | |||
</nowiki> | |||
}} | |||
{{note|如果您使用的是 Steam 控制器或 Valve Index,Steam 硬件支持会通过设置 <code>programs.steam.enable {{=}} true;</code> 将{{nixos:option|hardware.steam-hardware.enable}} 选项同步设置为 true 来隐性启用}} | {{note|如果您使用的是 Steam 控制器或 Valve Index,Steam 硬件支持会通过设置 <code>programs.steam.enable {{=}} true;</code> 将 {{nixos:option|hardware.steam-hardware.enable}} 选项同步设置为 true 来隐性启用}} | ||
{{note|如果您使用的是 2026 年发布的 Steam 控制器,Steam 客户端需要额外依赖 hidapi 才能与控制器正确通信。如果您反复遇到固件更新失败的错误,这很可能是原因所在。您可以像这样直接将依赖项添加到 Steam 环境中:<code>programs.steam.extraPackages {{=}} [pkgs.hidapi];</code>}} | |||
<span id="Tips_and_tricks"></span> | <span id="Tips_and_tricks"></span> | ||
== 提示和技巧 == | == 提示和技巧 == | ||
<span id="Improving_Performance"></span> | |||
=== 提升性能 === | |||
您可以使用 [https://github.com/FeralInteractive/gamemode GameMode],这是一个针对 Linux 的库和守护程序组合,它允许游戏请求将一组优化指令以临时应用于主机操作系统和/或游戏进程。 | |||
<syntaxhighlight lang="nixos"> | |||
programs.gamemode.enable = true; | |||
</syntaxhighlight> | |||
<span id="Gamescope_Compositor_/_"Boot_to_Steam_Deck""></span> | <span id="Gamescope_Compositor_/_"Boot_to_Steam_Deck""></span> | ||
| Line 109: | Line 114: | ||
=== Gamescope HDR === | === Gamescope HDR === | ||
要使 HDR 在 gamescope 中工作,您需要 | 要使 HDR 在 gamescope 中工作,您可能需要单独启用 <code>enableWsi</code> 选项。 | ||
<syntaxhighlight lang="nix"> | <syntaxhighlight lang="nix">programs.gamescope = { | ||
programs.gamescope = { | |||
enable = true; | enable = true; | ||
enableWsi = true; | |||
capSysNice = false; | capSysNice = false; | ||
}; | };</syntaxhighlight> | ||
</syntaxhighlight> | |||
此外,在 Steam 中配置游戏启动选项时,可能需要使用参数 <code>--hdr-debug-force-output</code> 以在 gamescope 中强制启用 HDR(参考以下示例)。 | 此外,在 Steam 中配置游戏启动选项时,可能需要使用参数 <code>--hdr-debug-force-output</code> 以在 gamescope 中强制启用 HDR(参考以下示例)。 | ||
| Line 233: | Line 234: | ||
GNOME 使用窗口类来确定与窗口关联的图标。Steam 目前在其 .desktop 文件中没有设置所需的键值<ref>https://github.com/ValveSoftware/steam-for-linux/issues/12207</ref>,但您可以通过编辑每个游戏的 .desktop 文件中的 <code>StartupWMClass</code> 键值来手动修复此问题,该文件位于 <code>~/.local/share/applications/</code> 目录下。 | GNOME 使用窗口类来确定与窗口关联的图标。Steam 目前在其 .desktop 文件中没有设置所需的键值<ref>https://github.com/ValveSoftware/steam-for-linux/issues/12207</ref>,但您可以通过编辑每个游戏的 .desktop 文件中的 <code>StartupWMClass</code> 键值来手动修复此问题,该文件位于 <code>~/.local/share/applications/</code> 目录下。 | ||
对于通过 Proton 运行的游戏,该值应为 <code>steam_app_<game_id></code> ( | 对于通过 Proton 运行的游戏,该值应为 <code>steam_app_<game_id></code> (<code><game_id></code>与 <code>Exec</code> 行中 steam://rungameid/ 之后的值匹配)。使用 [[Special:MyLanguage/Home Manager|Home Manager]](每次重建时执行)自动执行此操作: | ||
<syntaxhighlight lang="nix"> | |||
home.activation.fixSteamIcons = lib.hm.dag.entryAfter [ "writeBoundary" ] '' | |||
for f in ~/.local/share/applications/*.desktop; do | |||
id=$(grep -Eo 'steam://rungameid/[0-9]+' "$f" | sed 's#.*/##') || true | |||
[ -n "$id" ] || continue | |||
last=$(tail -n1 "$f" || true) | |||
want="StartupWMClass=steam_app_$id" | |||
[ "$last" = "$want" ] || echo "$want" >> "$f" | |||
done | |||
''; | |||
</syntaxhighlight> | |||
对于原生运行的游戏,该值应与游戏的主可执行文件匹配。 | 对于原生运行的游戏,该值应与游戏的主可执行文件匹配。 | ||
| Line 273: | Line 286: | ||
=== Steam 未更新 === | === Steam 未更新 === | ||
更新后重启 | 更新后重启 Steam 时,它会启动旧版本。([https://github.com/NixOS/nixpkgs/issues/181904 #181904]) | ||
一个解决方法是删除 <code>/home/<USER>/.local/share/Steam/userdata</code> 目录下的用户文件。您可以在终端中使用 <code>rm -rf /home/<USER>/.local/share/Steam/userdata</code> 命令或文件管理器来完成此操作。之后,重启 Steam 即可重新生成配置。 | 一个解决方法是删除 <code>/home/<USER>/.local/share/Steam/userdata</code> 目录下的用户文件。您可以在终端中使用 <code>rm -rf /home/<USER>/.local/share/Steam/userdata</code> 命令或文件管理器来完成此操作。之后,重启 Steam 即可重新生成配置。 | ||
| Line 290: | Line 303: | ||
注意:如果游戏卡在“正在安装脚本”界面,请检查是否存在 DXSETUP.EXE 进程并手动运行它,然后重新启动游戏。 | 注意:如果游戏卡在“正在安装脚本”界面,请检查是否存在 DXSETUP.EXE 进程并手动运行它,然后重新启动游戏。 | ||
<span id=" | <span id="Changing_the_driver_on_AMD_GPUs_<!-- this is not recommended due radv drivers performing better and generally more stable than amdvlk. My suggestion remove this section. source: https://forums.guru3d.com/threads/the-mesa-radv-amdvlk-thread.449774/ -->"></span> | ||
==== 更改 AMD GPU 的驱动程序 ==== | ==== 更改 AMD GPU 的驱动程序 <!-- this is not recommended due radv drivers performing better and generally more stable than amdvlk. My suggestion remove this section. source: https://forums.guru3d.com/threads/the-mesa-radv-amdvlk-thread.449774/ -->==== | ||
{{note|不建议这样做,因为 radv 驱动程序往往性能更好,而且通常比 amdvlk 驱动程序更稳定。}} | {{note|不建议这样做,因为 radv 驱动程序往往性能更好,而且通常比 amdvlk 驱动程序更稳定。}} | ||
| Line 341: | Line 354: | ||
<span id="Udev_rules_for_additional_Gamepads"></span> | <span id="Udev_rules_for_additional_Gamepads"></span> | ||
=== 额外游戏手柄的 udev 规则 === | === 用于额外支持游戏手柄的 udev 规则 === | ||
在某些特定情况下,游戏手柄可能需要一些额外的配置才能正常工作,这些配置以 udev 规则的形式表示。这可以通过 <code>services.udev.extraRules</code> 来配置。 | 在某些特定情况下,游戏手柄可能需要一些额外的配置才能正常工作,这些配置以 udev 规则的形式表示。这可以通过 <code>services.udev.extraRules</code> 来配置。 | ||
| Line 354: | Line 367: | ||
要查找设备的供应商和产品 ID,[https://search.nixos.org/packages?channel=unstable&show=usbutils&from=0&size=50&sort=relevance&type=packages&query=usbutils usbutils] 可能有用。 | 要查找设备的供应商和产品 ID,[https://search.nixos.org/packages?channel=unstable&show=usbutils&from=0&size=50&sort=relevance&type=packages&query=usbutils usbutils] 可能有用。 | ||
<span id="Steam_controller_mouse_input_issues"></span> | |||
=== Steam 控制器的鼠标输入问题 === | |||
使用控制器进行鼠标输入时,可能无法控制视觉光标。在这种情况下,输入仍然会被识别,但光标不会移动。解决方法是使用 extest 预加载 Steam。Steam 安装包中已经提供了相应的选项: | |||
<syntaxhighlight lang="nix"> | |||
programs.steam = { | |||
extest.enable = true; | |||
}; | |||
</syntaxhighlight> | |||
<span id="Known_issues"></span> | <span id="Known_issues"></span> | ||