NOflake/extras/gaming.nix

91 lines
2.1 KiB
Nix
Raw Normal View History

2024-02-24 02:30:17 -08:00
{pkgs, ...}: {
2024-04-09 10:06:48 -07:00
# aagl.url = "github:ezKEa/aagl-gtk-on-nix";
# aagl.inputs.nixpkgs.follows = "nixpkgs";
2023-07-11 00:38:39 -07:00
environment.systemPackages = with pkgs; [
2024-02-24 02:50:02 -08:00
# parsec-bin
2024-03-20 17:29:48 -07:00
gamemode
2024-01-30 09:32:08 -08:00
heroic
lutris
mangohud
prismlauncher
2024-03-28 00:49:09 -07:00
protonup-qt
2023-07-11 00:38:39 -07:00
wine
# yuzu # nintendo can suck the shit out of my asshole
2023-11-01 02:14:15 -07:00
];
2024-02-29 22:14:53 -08:00
programs.steam = {
enable = true;
2024-04-13 18:49:07 -07:00
# remotePlay.openFirewall = true;
gamescopeSession.enable = false;
2024-02-29 22:14:53 -08:00
};
2024-03-03 16:40:58 -08:00
programs.gamemode.enable = true;
2023-07-14 19:02:49 -07:00
programs.gamescope.enable = true;
2023-07-11 00:38:39 -07:00
2024-01-23 14:19:19 -08:00
security.pam.loginLimits = [
2024-02-24 02:30:17 -08:00
{
domain = "@game";
type = "-";
item = "nice";
value = -20;
}
2024-01-23 14:19:19 -08:00
];
2024-03-23 01:24:31 -07:00
security.sudo-rs.extraRules = [
{
commands = [
{
command = "${pkgs.systemd}/bin/bootctl set-oneshot auto-windows";
options = ["NOPASSWD"];
}
];
groups = ["wheel"];
}
];
2024-03-28 08:54:48 -07:00
# THE FINALS audio borked
2024-04-14 04:24:36 -07:00
# services.pipewire.enable = false;
# hardware.pulseaudio.enable = true;
# hardware.pulseaudio.support32Bit = true;
2024-03-28 08:54:48 -07:00
services.pipewire.extraConfig = {
pipewire."99-low-latency" = {
context.properties = {
default.allowed-rates = [44100 48000 96000];
default.clock.rate = 192000;
default.clock.quantum = 32;
default.clock.min-quantum = 32;
default.clock.max-quantum = 32;
};
context.modules = [
{
name = "libpipewire-module-rt";
args = {
nice.level = -12;
rt.prio = 89;
rt.time.soft = 200000;
rt.time.hard = 200000;
};
flags = ["ifexists nofail"];
}
];
};
pipewire-pulse."99-low-latency" = {
context.modules = [
{
name = "libpipewire-module-protocol-pulse";
args = {
pulse.min.req = "32/192000";
pulse.default.req = "32/192000";
pulse.max.req = "32/192000";
pulse.min.quantum = "32/192000";
pulse.max.quantum = "32/192000";
};
}
];
stream.properties = {
node.latency = "32/192000";
resample.quality = 1;
};
};
};
2023-07-11 00:38:39 -07:00
}