From 1e98e895fa2cddaa8542954d53b8d75a903e684d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maciej=20Kr=C3=BCger?= Date: Fri, 1 May 2020 16:50:28 +0200 Subject: [PATCH 1/3] nixos/steam: init --- nixos/modules/module-list.nix | 1 + nixos/modules/programs/steam.nix | 25 +++++++++++++++++++++++++ 2 files changed, 26 insertions(+) create mode 100644 nixos/modules/programs/steam.nix diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix index 585cef9b42e..08a5f32c4c9 100644 --- a/nixos/modules/module-list.nix +++ b/nixos/modules/module-list.nix @@ -156,6 +156,7 @@ ./programs/ssmtp.nix ./programs/sysdig.nix ./programs/systemtap.nix + ./programs/steam.nix ./programs/sway.nix ./programs/system-config-printer.nix ./programs/thefuck.nix diff --git a/nixos/modules/programs/steam.nix b/nixos/modules/programs/steam.nix new file mode 100644 index 00000000000..3c919c47a0c --- /dev/null +++ b/nixos/modules/programs/steam.nix @@ -0,0 +1,25 @@ +{ config, lib, pkgs, ... }: + +with lib; + +let + cfg = config.programs.steam; +in { + options.programs.steam.enable = mkEnableOption "steam"; + + config = mkIf cfg.enable { + hardware.opengl = { # this fixes the "glXChooseVisual failed" bug, context: https://github.com/NixOS/nixpkgs/issues/47932 + enable = true; + driSupport32Bit = true; + }; + + # optionally enable 32bit pulseaudio support if pulseaudio is enabled + hardware.pulseaudio.support32Bit = config.hardware.pulseaudio.enable; + + hardware.steam-hardware.enable = true; + + environment.systemPackages = [ pkgs.steam ]; + }; + + meta.maintainers = with maintainers; [ mkg20001 ]; +} From bee2b91b7f3d33b5b5f5963753a364ef99a037fc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maciej=20Kr=C3=BCger?= Date: Sun, 12 Jul 2020 19:45:12 +0200 Subject: [PATCH 2/3] doc/steam: add docs about new steam module --- doc/builders/packages/steam.xml | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/doc/builders/packages/steam.xml b/doc/builders/packages/steam.xml index 8dfede59ac1..59673328bac 100644 --- a/doc/builders/packages/steam.xml +++ b/doc/builders/packages/steam.xml @@ -45,13 +45,7 @@ How to play - For 64-bit systems it's important to have -hardware.opengl.driSupport32Bit = true; - in your /etc/nixos/configuration.nix. You'll also need -hardware.pulseaudio.support32Bit = true; - if you are using PulseAudio - this will enable 32bit ALSA apps integration. To use the Steam controller or other Steam supported controllers such as the DualShock 4 or Nintendo Switch Pro, you need to add -hardware.steam-hardware.enable = true; - to your configuration. + Use programs.steam.enable = true; if you want to add steam to systemPackages and also enable a few workarrounds aswell as Steam controller support or other Steam supported controllers such as the DualShock 4 or Nintendo Switch Pr. From 2d63269e0d2d44d0ac3ddc14c40c88686f8b2cfa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maciej=20Kr=C3=BCger?= Date: Sun, 12 Jul 2020 20:09:34 +0200 Subject: [PATCH 3/3] doc/rl-2009: document new steam module in release notes --- nixos/doc/manual/release-notes/rl-2009.xml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/nixos/doc/manual/release-notes/rl-2009.xml b/nixos/doc/manual/release-notes/rl-2009.xml index 7da1f502378..c7b3190a5da 100644 --- a/nixos/doc/manual/release-notes/rl-2009.xml +++ b/nixos/doc/manual/release-notes/rl-2009.xml @@ -130,6 +130,11 @@ systemd.services.mysql.serviceConfig.ReadWritePaths = [ "/var/data" ]; This will make container tools like Podman work as non-root users out of the box. + + + The various documented workarounds to use steam have been converted to a module. programs.steam.enable enables steam, controller support and the workarounds. + +