2022-05-22 23:43:46 +00:00
{ config , pkgs , lib , . . . }: {
2022-04-26 01:54:53 +00:00
2022-12-21 21:18:03 +00:00
options . gaming . steam . enable = lib . mkEnableOption " S t e a m g a m e l a u n c h e r . " ;
2022-04-26 01:54:53 +00:00
2022-12-21 21:18:03 +00:00
config = lib . mkIf ( config . gaming . steam . enable && pkgs . stdenv . isLinux ) {
2022-04-26 01:54:53 +00:00
hardware . steam-hardware . enable = true ;
2022-10-29 18:42:37 +00:00
unfreePackages = [ " s t e a m " " s t e a m - o r i g i n a l " " s t e a m c m d " " s t e a m - r u n " ] ;
2022-05-28 14:34:00 +00:00
2023-03-06 04:03:34 +00:00
programs . steam = {
enable = true ;
remotePlay . openFirewall = true ;
2024-02-17 03:26:17 +00:00
package = pkgs . steam . override {
# Adapted in part from: https://github.com/Shawn8901/nix-configuration/blob/1c48be94238a9f463cf0bbd1e1842a4454286514/modules/nixos/steam-compat-tools/default.nix
# Based on: https://github.com/NixOS/nixpkgs/issues/73323
extraEnv = {
STEAM_EXTRA_COMPAT_TOOLS_PATHS =
lib . makeBinPath [ pkgs . proton-ge-custom ] ;
} ;
} ;
2023-03-06 04:03:34 +00:00
} ;
environment . systemPackages = with pkgs ; [
2022-05-28 14:34:00 +00:00
# Enable terminal interaction
steamPackages . steamcmd
steam-tui
2023-06-06 03:50:17 +00:00
# Allow downloading of GE-Proton and other versions
protonup-qt
2022-05-28 14:34:00 +00:00
] ;
2023-03-06 04:03:34 +00:00
2023-08-09 02:13:24 +00:00
# Seems like NetworkManager can help speed up Steam launch
# https://www.reddit.com/r/archlinux/comments/qguhco/steam_startup_time_arch_1451_seconds_fedora_34/hi8opet/
networking . networkmanager . enable = true ;
2022-04-26 01:54:53 +00:00
} ;
}