{ lib, config, pkgs, ... }: let cfg = config.share.gaming; pkgsVersion = pkgs; #.unstable; in { imports = [ ./options.nix ]; config = lib.mkIf cfg.enable { # Network option required using sysctl to let Ubisoft Connect work as of 7-12-2023 boot.kernel.sysctl."net.ipv4.tcp_mtu_probing" = 1; # Configure programs programs.steam = { enable = true; # Open ports in the firewall for Steam Remote Play remotePlay.openFirewall = true; # Open ports in the firewall for Source Dedicated Server dedicatedServer.openFirewall = true; extraCompatPackages = with pkgsVersion; [ proton-ge-bin]; gamescopeSession = { enable = true; args = [ "-f" "-H 2160" "-W 3840" "-r 240" "--hdr-enabled" "--adaptive-sync" ]; }; }; # "gamescope -f -H 2160 -W 3840 -r 240 --adaptive-sync --hdr-enabled programs = { alvr = { enable = true; openFirewall = true; }; gamescope = { enable = true; capSysNice = true; }; gamemode.enable = true; }; # Hardware configs hardware = { # Xbox controllers xpadneo.enable = false; # Steam udev rules for remote play steam-hardware.enable = true; }; # Configure nixpkgs nixpkgs.config.packageOverrides = pkgs: { steam = pkgs.steam.override { extraPkgs = pkgs: with pkgsVersion; [ xorg.libXcursor xorg.libXi xorg.libXinerama xorg.libXScrnSaver libpng libpulseaudio libvorbis stdenv.cc.cc.lib libkrb5 keyutils ]; }; }; }; }