2023-08-22 19:39:11 +03:00
|
|
|
{ config, pkgs, lib, ... }:
|
2023-07-28 15:39:50 +03:00
|
|
|
|
2023-09-06 16:10:11 +03:00
|
|
|
let cfg = config.my.roles.gaming;
|
2023-08-22 19:39:11 +03:00
|
|
|
in {
|
|
|
|
options.my.roles.gaming.enable = lib.mkEnableOption "Enable wine & steam";
|
2023-09-06 16:10:11 +03:00
|
|
|
config = lib.mkIf (cfg.enable) (lib.mkMerge [
|
|
|
|
{
|
|
|
|
nixpkgs.config.allowUnfree = true;
|
|
|
|
hardware.opengl.driSupport32Bit = true;
|
|
|
|
services.pipewire.alsa.support32Bit = true;
|
|
|
|
environment.systemPackages = with pkgs; [
|
|
|
|
wineWowPackages.stable
|
|
|
|
wine
|
|
|
|
(wine.override { wineBuild = "wine64"; })
|
|
|
|
wineWowPackages.staging
|
|
|
|
winetricks
|
|
|
|
wineWowPackages.waylandFull
|
|
|
|
(retroarch.override { cores = with libretro; [ np2kai ]; })
|
|
|
|
];
|
|
|
|
}
|
|
|
|
# Enable steam only on x86_64 (since I have hosts with ARM, but I don't think I will enable my.roles.gaming on ARM system soon)
|
|
|
|
(lib.mkIf (pkgs.stdenv.isx86_64) {
|
|
|
|
programs.steam.enable =
|
|
|
|
true; # Firewall ports used by Steam in-home streaming.
|
|
|
|
networking.firewall.allowedTCPPorts = [ 27036 27037 ];
|
|
|
|
networking.firewall.allowedUDPPorts = [ 27031 27036 ];
|
2023-08-23 10:36:32 +03:00
|
|
|
})
|
|
|
|
]);
|
2023-09-04 21:54:55 +03:00
|
|
|
}
|