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}'";
|
|
};
|
|
})
|
|
];
|
|
};
|
|
}
|