65 lines
		
	
	
	
		
			1.4 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
			
		
		
	
	
			65 lines
		
	
	
	
		
			1.4 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
| { lib, config, pkgs, inputs, ... }:
 | |
| 
 | |
| let
 | |
|   cfg = config.systemProfile.gaming;
 | |
|   steamFix = pkgs.steam.override {
 | |
|     extraPkgs = pkgs: with pkgs; [
 | |
|       xorg.libXcursor
 | |
|       xorg.libXi
 | |
|       xorg.libXinerama
 | |
|       xorg.libXScrnSaver
 | |
|       libpng
 | |
|       libpulseaudio
 | |
|       libvorbis
 | |
|       stdenv.cc.cc.lib
 | |
|       libkrb5
 | |
|       keyutils
 | |
|       mangohud
 | |
|       winetricks
 | |
|       inputs.nix-gaming.packages.${pkgs.system}.wine-ge
 | |
|       protontricks
 | |
|     ];
 | |
|   };
 | |
| in
 | |
| 
 | |
| {
 | |
|   imports = [
 | |
|     inputs.nix-gaming.nixosModules.pipewireLowLatency
 | |
|   ];
 | |
| 
 | |
|   config = lib.mkIf cfg.enable {
 | |
|     hardware.opengl.extraPackages = [ pkgs.gamescope ];
 | |
|     programs = {
 | |
|       steam = {
 | |
|         enable = true;
 | |
|         package = steamFix;
 | |
|       };
 | |
|       gamescope = {
 | |
|         enable = true;
 | |
|         capSysNice = true;
 | |
|       };
 | |
|       gamemode = {
 | |
|         enable = true;
 | |
|         settings = {
 | |
|           general = {
 | |
|             renice = 15;
 | |
|             softrealtime = "auto";
 | |
|           };
 | |
|            custom = {
 | |
|             start = "${pkgs.libnotify}/bin/notify-send 'GameMode started'";
 | |
|             end = "${pkgs.libnotify}/bin/notify-send 'GameMode ended'";
 | |
|           };
 | |
|         };
 | |
|       };
 | |
|     };
 | |
|     services.pipewire.lowLatency.enable = true;
 | |
| 
 | |
|     nixpkgs.overlays = [
 | |
|       (_: prev: {
 | |
|         steam = prev.steam.override {
 | |
|           extraProfile = "export STEAM_EXTRA_COMPAT_TOOLS_PATHS='${inputs.nix-gaming.packages.${pkgs.system}.proton-ge}'";
 | |
|         };
 | |
|       })
 | |
|     ];
 | |
|   };
 | |
| }
 |