{ config, pkgs, lib, ... }: { programs.steam.enable = true; programs.steam.remotePlay.openFirewall = true; # Open ports in the firewall for Steam Remote Play programs.steam.dedicatedServer.openFirewall = true; # Open ports in the firewall for Source Dedicated Server # TODO: gamemode? nixpkgs.config.allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) [ "steam" "steam-original" "steam-runtime" ]; #programs.java.enable = true; nixpkgs.config.packageOverrides = pkgs: { # TODO: mesa, see https://sourcegraph.com/github.com/corngood/nixos-mesa-git/-/blob/configuration.nix steam = pkgs.steam.override { withPrimus = config.hardware.nvidia.modesetting.enable; withJava = config.programs.java.enable; #nativeOnly = true; #newStdcpp = true; #extraProfile = "export SDL_VIDEODRIVER=x11"; extraPkgs = pkgs: with pkgs; [ config.hardware.opengl.package nettools # some scripts expect 'hostname' glxinfo # for debugging pipewire libgdiplus libpng libpulseaudio libvorbis libbsd gnutls zlib mono cairo pango cabextract lsb-release fontconfig gdk-pixbuf gtk3 gtk3-x11 xorg.libXcursor xorg.libXi xorg.libXinerama xorg.libXScrnSaver xorg.libxcb stdenv.cc.cc.lib #libkrb5 #keyutils ]; }; }; #services.joycond.enable = true; hardware.opengl.enable = true; hardware.opengl.driSupport32Bit = true; hardware.opengl.extraPackages32 = with pkgs.pkgsi686Linux; [ libva ]; environment.systemPackages = with pkgs; [ steam-tui steamcmd protontricks ]; }