Steam/ru: Difference between revisions

FuzzyBot (talk | contribs)
Updating to match new version of source page
FuzzyBot (talk | contribs)
Updating to match new version of source page
Tags: Mobile edit Mobile web edit
 
(2 intermediate revisions by the same user not shown)
Line 29: Line 29:


<div lang="en" dir="ltr" class="mw-content-ltr">
<div lang="en" dir="ltr" class="mw-content-ltr">
To install the [[Steam]] package and enable all the system options necessary to allow it to run, add the following to your system configuration:
To install the [[Special:MyLanguage/Steam|Steam]] package and enable all the system options necessary to allow it to run, add the following to your system configuration:
</div>
</div>


 
{{file|3=<nowiki>
{{file|/etc/nixos/configuration.nix|nix|
<nowiki>
programs.steam = {
programs.steam = {
   enable = true;
   enable = true;
Line 41: Line 39:
# 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.linuxPackages_lts; # Example for LTS
# boot.kernelPackages = pkgs.linuxPackages; # Example for LTS
</nowiki>
</nowiki>|name=/etc/nixos/configuration.nix|lang=nix}}
}}


<div lang="en" dir="ltr" class="mw-content-ltr">
<div lang="en" dir="ltr" class="mw-content-ltr">
Line 49: Line 46:
</div>
</div>


{{note|1=<span lang="en" dir="ltr" class="mw-content-ltr">Enabling [[steam]] installs several [[unfree software|unfree packages]]. If you are using <code>allowUnfreePredicate</code> you will need to ensure that your configurations permit all of them.</span>
{{note|1=<span lang="en" dir="ltr" class="mw-content-ltr">Enabling [[Special:MyLanguage/Steam|Steam]] installs several [[Special:MyLanguage/unfree software|unfree packages]]. If you are using <code>allowUnfreePredicate</code> you will need to ensure that your configurations permit all of them.</span>
 
<syntaxhighlight lang="nix">
<syntaxhighlight lang="nix">
   nixpkgs.config.allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) [
   nixpkgs.config.allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) [
Line 64: Line 62:
</div>
</div>


{{file|/etc/nixos/configuration.nix|nix|
{{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 72: Line 69:
   # Other general flags if available can be set here.
   # Other general flags if available can be set here.
};
};
# Tip: For improved gaming performance, you can also enable GameMode:
</nowiki>|name=/etc/nixos/configuration.nix|lang=nix}}
# programs.gamemode.enable = true;
 
</nowiki>
{{note|<span lang="en" dir="ltr" class="mw-content-ltr">If you are using a Steam Controller or a Valve Index, Steam hardware support is implicitly enabled by <code>programs.steam.enable {{=}} true;</code> which sets {{nixos:option|hardware.steam-hardware.enable}} to true.</span>}}
}}
 
{{note|<span lang="en" dir="ltr" class="mw-content-ltr">If you are using the Steam Controller released in 2026, the Steam client has an additional dependency on hidapi, needed to correctly communicate with the controller. If you are seeing repeated errors about failed firmware updates, this is likely why. You can add the dependency directly to the Steam environment like so: <code>programs.steam.extraPackages {{=}} [pkgs.hidapi];</code></span>}}


<div lang="en" dir="ltr" class="mw-content-ltr">
<div lang="en" dir="ltr" class="mw-content-ltr">
{{note|If you are using a Steam Controller or a Valve Index, Steam hardware support is implicitly enabled by <code>programs.steam.enable {{=}} true;</code> which sets {{nixos:option|hardware.steam-hardware.enable}} to true.}}
== Tips and tricks ==
</div>
</div>


<span id="Tips_and_tricks"></span>
<div lang="en" dir="ltr" class="mw-content-ltr">
== Советы и рекомендации ==
=== Improving Performance ===
</div>
 
<div lang="en" dir="ltr" class="mw-content-ltr">
You can utilize [https://github.com/FeralInteractive/gamemode GameMode], a combination of a library and daemon for Linux that allows games to request a set of optimizations to be temporarily applied to the host operating system and/or a game process.
</div>
 
<syntaxhighlight lang="nixos">
programs.gamemode.enable = true;
</syntaxhighlight>


<div lang="en" dir="ltr" class="mw-content-ltr">
<div lang="en" dir="ltr" class="mw-content-ltr">
Line 132: Line 139:


<div lang="en" dir="ltr" class="mw-content-ltr">
<div lang="en" dir="ltr" class="mw-content-ltr">
In order for HDR to work within gamescope, you need to separately install the <code>gamescope-wsi</code> package alongside enabling the <code>gamescope</code> program.
In order for HDR to work within gamescope, you might need to separately enable the <code>enableWsi</code> option
</div>
</div>


<syntaxhighlight lang="nix">
<syntaxhighlight lang="nix">programs.gamescope = {
programs.gamescope = {
   enable = true;
   enable = true;
  enableWsi = true;
   capSysNice = false;
   capSysNice = false;
};
};</syntaxhighlight>
environment.systemPackages = with pkgs; [
  gamescope-wsi # HDR won't work without this
];
</syntaxhighlight>


<div lang="en" dir="ltr" class="mw-content-ltr">
<div lang="en" dir="ltr" class="mw-content-ltr">
Line 165: Line 168:


<div lang="en" dir="ltr" class="mw-content-ltr">
<div lang="en" dir="ltr" class="mw-content-ltr">
Then install and run `steam-tui`. You may need to log in within `steamcmd` first if `steam-tui` has issues:
Then install and run <code>steam-tui</code>. You may need to log in within <code>steamcmd</code> first if <code>steam-tui</code> has issues:
</div>
</div>


Line 289: Line 292:


<div lang="en" dir="ltr" class="mw-content-ltr">
<div lang="en" dir="ltr" class="mw-content-ltr">
For games running through Proton, the value should be <code>steam_app_<game_id></code> (where <code><game_id></code> matches the value after steam://rungameid/ on the <code>Exec</code> line).
For games running through Proton, the value should be <code>steam_app_<game_id></code> (where <code><game_id></code> matches the value after steam://rungameid/ on the <code>Exec</code> line). To automate this with [[Special:MyLanguage/Home Manager|Home Manager]] (executed on every rebuild):
</div>
</div>
<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>


<div lang="en" dir="ltr" class="mw-content-ltr">
<div lang="en" dir="ltr" class="mw-content-ltr">
Line 343: Line 358:


<div lang="en" dir="ltr" class="mw-content-ltr">
<div lang="en" dir="ltr" class="mw-content-ltr">
When you restart [[Steam]] after an update, it starts the old version. ([https://github.com/NixOS/nixpkgs/issues/181904 #181904])
When you restart Steam after an update, it starts the old version. ([https://github.com/NixOS/nixpkgs/issues/181904 #181904])
A workaround is to remove the user files in <code>/home/&lt;USER&gt;/.local/share/Steam/userdata</code>. This can be done with <code>rm -rf /home/&lt;USER&gt;/.local/share/Steam/userdata</code> in the terminal or with your file manager. After that, Steam can be set up again by restarting.
A workaround is to remove the user files in <code>/home/&lt;USER&gt;/.local/share/Steam/userdata</code>. This can be done with <code>rm -rf /home/&lt;USER&gt;/.local/share/Steam/userdata</code> in the terminal or with your file manager. After that, Steam can be set up again by restarting.
</div>
</div>
Line 388: Line 403:


<div lang="en" dir="ltr" class="mw-content-ltr">
<div lang="en" dir="ltr" class="mw-content-ltr">
In the presence of both drivers, [[Steam]] will default to amdvlk. The amdvlk driver can be considered more correct regarding Vulkan specification implementation, but less performant than radv. However, this tradeoff between correctness and performance can sometimes make or break the gaming experience.
In the presence of both drivers, [[Special:MyLanguage/Steam|Steam]] will default to amdvlk. The amdvlk driver can be considered more correct regarding Vulkan specification implementation, but less performant than radv. However, this tradeoff between correctness and performance can sometimes make or break the gaming experience.
</div>
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
<div lang="en" dir="ltr" class="mw-content-ltr">
To "reset" your driver to radv when both radv and amdvlk are installed, set either <code>AMD_VULKAN_ICD = "RADV"</code> or <code>VK_ICD_FILENAMES = "/run/opengl-driver/share/vulkan/icd.d/radeon_icd.x86_64.json"</code> environment variable. For example, if you start [[Steam]] from the shell, you can enable radv for the current session by running <code>AMD_VULKAN_ICD="RADV" steam</code>. If you are unsure which driver you currently use, you can launch a game with [https://github.com/flightlessmango/MangoHud MangoHud] enabled, which has the capability to show what driver is currently in use.
To "reset" your driver to radv when both radv and amdvlk are installed, set either <code>AMD_VULKAN_ICD = "RADV"</code> or <code>VK_ICD_FILENAMES = "/run/opengl-driver/share/vulkan/icd.d/radeon_icd.x86_64.json"</code> environment variable. For example, if you start [[Special:MyLanguage/Steam|Steam]] from the shell, you can enable radv for the current session by running <code>AMD_VULKAN_ICD="RADV" steam</code>. If you are unsure which driver you currently use, you can launch a game with [https://github.com/flightlessmango/MangoHud MangoHud] enabled, which has the capability to show what driver is currently in use.
</div>
</div>


Line 449: Line 464:
To find the vendor and product ID of a device [https://search.nixos.org/packages?channel=unstable&show=usbutils&from=0&size=50&sort=relevance&type=packages&query=usbutils usbutils] might be useful
To find the vendor and product ID of a device [https://search.nixos.org/packages?channel=unstable&show=usbutils&from=0&size=50&sort=relevance&type=packages&query=usbutils usbutils] might be useful
</div>
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
=== Steam controller mouse input issues ===
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
Mouse input on the controller may fail to take control of the visual cursor. In this instance, the input is still registered, but the cursor does not move. A fix for this is to preload Steam with extest. The Steam package already has an option for it:
</div>
<syntaxhighlight lang="nix">
  programs.steam = {
    extest.enable = true;
  };
</syntaxhighlight>


<span id="Known_issues"></span>
<span id="Known_issues"></span>
Line 458: Line 487:


<div lang="en" dir="ltr" class="mw-content-ltr">
<div lang="en" dir="ltr" class="mw-content-ltr">
Resetting your password through the [[Steam]] app may fail at the CAPTCHA step repeatedly, with [[Steam]] itself reporting that the CAPTCHA was not correct, even though the CAPTCHA UI shows success. Resetting password through the [[Steam]] website should work around that.
Resetting your password through the [[Special:MyLanguage/Steam|Steam]] app may fail at the CAPTCHA step repeatedly, with [[Special:MyLanguage/Steam|Steam]] itself reporting that the CAPTCHA was not correct, even though the CAPTCHA UI shows success. Resetting password through the [[Special:MyLanguage/Steam|Steam]] website should work around that.
</div>
</div>