all repos — nixfiles @ 4f4c21036042e6be30e47fd01029bfbfbabe28ac

System and user configuration, managed by nix and home-manager

system/settings/gaming.nix (view raw)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
{
  pkgs,
  ...
}:
{
  security.rtkit.enable = true;
  nixpkgs.config.permittedInsecurePackages = [
    "openssl-1.1.1w"
  ];
  programs.steam = {
    enable = true;
    package = pkgs.steam.override {
      extraLibraries =
        p: with p; [
          atk
          openssl_1_1
          openssl
          sdl2-compat
          curl
        ];
    };
    extraPackages = with pkgs; [
      gamescope
      openssl_1_1
      openssl
      sdl2-compat
      curl
    ];
    extraCompatPackages = with pkgs; [
      proton-ge-bin
    ];
    remotePlay.openFirewall = true;
    localNetworkGameTransfers.openFirewall = true;
    protontricks.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.graphics.enable = true;

  systemd = {
    settings.Manager = {
      DefaultLimitNOFILE = 524288;
    };
    user.extraConfig = ''
      DefaultLimitNOFILE=524288
    '';
  };

  environment.systemPackages = with pkgs; [
    ludusavi
  ];

  services.ananicy = {
    enable = true;
  };

  networking.firewall = {
    allowedUDPPorts = [
      27031
      27036
    ];
    allowedTCPPorts = [
      27036
      27037
    ];
  };
}