{ lib, config, ... }: let cfg = config.share.gaming; 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; 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; }; # Hardware configs hardware = { # Xbox controllers xpadneo.enable = true; # Steam udev rules for remote play steam-hardware.enable = true; }; # Configure nixpkgs nixpkgs.config.packageOverrides = pkgs: { steam = pkgs.steam.override { extraPkgs = pkgs: with pkgs; [ xorg.libXcursor xorg.libXi xorg.libXinerama xorg.libXScrnSaver libpng libpulseaudio libvorbis stdenv.cc.cc.lib libkrb5 keyutils ]; }; }; }; }