58 lines
1.3 KiB
Nix
58 lines
1.3 KiB
Nix
{pkgs, ...}: let
|
|
mangoConfigList = ["cpu_temp" "gpu_temp" "ram" "vram"];
|
|
mangoConfigStr = builtins.concatStringsSep "," mangoConfigList;
|
|
|
|
gamescopeArgsList = [
|
|
"--adaptive-sync"
|
|
"--hdr-enabled"
|
|
"--mangoapp"
|
|
"--rt"
|
|
"--steam"
|
|
];
|
|
gamescopeArgsStr = builtins.concatStringsSep " " gamescopeArgsList;
|
|
|
|
steamArgsList = [
|
|
"-pipewire-dmabuf"
|
|
"-tenfoot"
|
|
];
|
|
steamArgsStr = builtins.concatStringsSep " " steamArgsList;
|
|
|
|
myGamescopeSteamScript = pkgs.writeShellApplication {
|
|
name = "start-gamescope-steam";
|
|
runtimeInputs = [
|
|
pkgs.gamescope
|
|
pkgs.steam
|
|
pkgs.mangohud
|
|
];
|
|
text = ''
|
|
#!/usr/bin/env bash
|
|
set -xeuo pipefail
|
|
|
|
export MANGOHUD=1
|
|
export MANGOHUD_CONFIG="${mangoConfigStr}"
|
|
|
|
exec ${pkgs.gamescope}/bin/gamescope ${gamescopeArgsStr} -- ${pkgs.steam}/bin/steam ${steamArgsStr}
|
|
'';
|
|
};
|
|
in {
|
|
programs = {
|
|
gamescope = {
|
|
enable = true;
|
|
capSysNice = true;
|
|
};
|
|
steam = {
|
|
enable = true;
|
|
remotePlay.openFirewall = true;
|
|
dedicatedServer.openFirewall = true;
|
|
localNetworkGameTransfers.openFirewall = true;
|
|
gamescopeSession.enable = true;
|
|
};
|
|
};
|
|
|
|
hardware.xone.enable = true;
|
|
|
|
environment.loginShellInit = ''
|
|
[[ "$(tty)" = "/dev/tty1" ]] && ${myGamescopeSteamScript}/bin/start-gamescope-steam
|
|
'';
|
|
}
|