2024-05-07 23:31:41 +02:00
|
|
|
{
|
|
|
|
pkgs,
|
|
|
|
config,
|
|
|
|
lib,
|
|
|
|
...
|
|
|
|
}:
|
2024-04-10 16:51:28 +02:00
|
|
|
let
|
2024-03-24 16:59:47 +01:00
|
|
|
cfg = config.grimmShared;
|
2024-04-10 16:51:28 +02:00
|
|
|
in
|
|
|
|
{
|
2024-05-07 23:31:41 +02:00
|
|
|
config =
|
|
|
|
with cfg;
|
|
|
|
lib.mkIf (enable && gaming) {
|
|
|
|
programs.steam = {
|
|
|
|
enable = true;
|
|
|
|
gamescopeSession.enable = true;
|
|
|
|
gamescopeSession.env = {
|
|
|
|
DRI_PRIME = "1";
|
|
|
|
};
|
|
|
|
extraCompatPackages = with pkgs; [ proton-ge-bin ];
|
|
|
|
# extest.enable = true;
|
2024-03-24 16:59:47 +01:00
|
|
|
};
|
|
|
|
|
2024-05-07 23:31:41 +02:00
|
|
|
programs.gamemode = {
|
|
|
|
enable = true;
|
|
|
|
settings = {
|
|
|
|
general = {
|
|
|
|
inhibit_screensaver = 0;
|
|
|
|
renice = 10;
|
|
|
|
};
|
|
|
|
custom = {
|
|
|
|
start = "${lib.getExe pkgs.libnotify} 'GameMode started'";
|
|
|
|
end = "${lib.getExe pkgs.libnotify} 'GameMode ended'";
|
|
|
|
};
|
2024-03-24 16:59:47 +01:00
|
|
|
};
|
2024-05-05 13:14:44 +02:00
|
|
|
};
|
2024-03-24 16:59:47 +01:00
|
|
|
|
2024-05-07 23:31:41 +02:00
|
|
|
services.udev.packages = [ pkgs.wooting-udev-rules ];
|
2024-03-24 16:59:47 +01:00
|
|
|
|
2024-05-07 23:31:41 +02:00
|
|
|
environment.sessionVariables = {
|
|
|
|
GAMEMODERUNEXEC = "env DRI_PRIME=1";
|
|
|
|
};
|
2024-03-24 16:59:47 +01:00
|
|
|
|
2024-05-07 23:31:41 +02:00
|
|
|
environment.systemPackages = with pkgs; [
|
|
|
|
heroic
|
|
|
|
prismlauncher
|
|
|
|
mangohud
|
|
|
|
the-powder-toy
|
|
|
|
(pkgs.symlinkJoin {
|
|
|
|
name = "osu";
|
|
|
|
paths = [
|
|
|
|
(pkgs.writeShellScriptBin "osu!" ''
|
|
|
|
exec gamemoderun ${lib.getExe pkgs.osu-lazer-bin}
|
|
|
|
'')
|
|
|
|
pkgs.osu-lazer-bin
|
|
|
|
];
|
|
|
|
})
|
|
|
|
];
|
|
|
|
};
|
2024-04-16 12:09:17 +02:00
|
|
|
|
2024-04-27 10:51:53 +02:00
|
|
|
options.grimmShared.gaming = lib.mkEnableOption "enables steam, heroic, prism and gamemoded";
|
2024-03-24 16:59:47 +01:00
|
|
|
}
|