{ config, pkgs, ... }: { security.rtkit.enable = true; programs.steam.enable = true; programs.gamemode = { enable = true; settings = { general = { renice = 5; }; custom = { start = "${pkgs.libnotify}/bin/notify-send 'GameMode started'"; end = "${pkgs.libnotify}/bin/notify-send 'GameMode ended'"; }; }; }; fonts.fontconfig.cache32Bit = true; hardware.steam-hardware.enable = true; hardware.opengl = { enable = true; driSupport32Bit = true; }; hardware.pulseaudio.support32Bit = true; services.pipewire.alsa.support32Bit = true; services.pipewire.config.pipewire = { "context.properties" = { "link.max-buffers" = 16; "log.level" = 2; "default.clock.rate" = 44100; "default.clock.allowed_rates" = [ 44100 48000 88200 96000 ]; "default.clock.quantum" = 64; "default.clock.min-quantum" = 64; "default.clock.max-quantum" = 1024; "core.daemon" = true; "core.name" = "pipewire-0"; }; "context.modules" = [ { name = "libpipewire-module-rtkit"; args = { "nice.level" = -15; "rt.prio" = 88; "rt.time.soft" = 200000; "rt.time.hard" = 200000; }; flags = ["ifexists" "nofail"]; } {name = "libpipewire-module-protocol-native";} {name = "libpipewire-module-profiler";} {name = "libpipewire-module-metadata";} {name = "libpipewire-module-spa-device-factory";} {name = "libpipewire-module-spa-node-factory";} {name = "libpipewire-module-client-node";} {name = "libpipewire-module-client-device";} { name = "libpipewire-module-portal"; flags = ["ifexists" "nofail"]; } { name = "libpipewire-module-access"; args = {}; } {name = "libpipewire-module-adapter";} {name = "libpipewire-module-link-factory";} {name = "libpipewire-module-session-manager";} ]; "stream.properties" = { "node.latency" = "32/44100"; "resample.quality" = 1; }; }; services.pipewire.config.pipewire-pulse = { "context.properties" = { "log.level" = 2; }; "pulse.properties" = { "server.address" = [ "unix:native" "tcp:127.0.0.1:4713" ]; }; "context.modules" = [ { name = "libpipewire-module-rtkit"; args = { "nice.level" = -15; "rt.prio" = 88; "rt.time.soft" = 200000; "rt.time.hard" = 200000; }; flags = [ "ifexists" "nofail" ]; } { name = "libpipewire-module-protocol-native"; } { name = "libpipewire-module-client-node"; } { name = "libpipewire-module-adapter"; } { name = "libpipewire-module-metadata"; } { name = "libpipewire-module-protocol-pulse"; args = { "pulse.min.req" = "128/48000"; "pulse.default.req" = "128/48000"; "pulse.max.req" = "128/48000"; "pulse.min.quantum" = "128/48000"; "pulse.max.quantum" = "128/48000"; "server.address" = [ "unix:native" "tcp:127.0.0.1:4713" ]; }; } ]; "stream.properties" = { "node.latency" = "32/48000"; "resample.quality" = 1; }; }; systemd = { extraConfig = '' DefaultLimitNOFILE=524288 ''; user.extraConfig = '' DefaultLimitNOFILE=524288 ''; }; services.ananicy = { enable = true; }; networking.firewall = { allowedUDPPorts = [ 27031 27036 ]; allowedTCPPorts = [ 27036 27037 ]; }; }