summaryrefslogtreecommitdiff
path: root/modules/desktop/steam.nix
blob: f19130cbd21af0440e2631ccece39f7ac2beabf3 (plain)
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
{config, pkgs,lib, ...}: {
  options.addons = {
      steam.enable = lib.mkEnableOption "Enable steam on this machine"; 
  };

  config = lib.mkIf config.addons.steam.enable (lib.mkMerge [ 
    ({
      assertions = [
        { 
          assertion = config.addons.desktop.enable;
          message = "You need a desktop environment to enable Steam!"; 
        }
      ];
      programs.gamescope = {
        enable = true;
        capSysNice = true;
      }; 
      programs.steam = {
        enable = true; 
        # Done according to the wiki, talks about some unexpected values in a lambda? 
        # Doesn't seem to be how overrides work 
        # TODO: Figure out how overrides work
        # package = pkgs.steam.override {
        #   # withPrimus = true; 
        #   extraPackages = with pkgs; [bumblebee glxinfo];
        # }; 
        
        # Gamescope  
        gamescopeSession.enable = true;

        # Open firewall 
        remotePlay.openFirewall = true; 
        dedicatedServer.openFirewall = true; 
        localNetworkGameTransfers.openFirewall = true; 
      };

      # Enable Appimage for some steam games 
      programs.appimage.enable = true;
      programs.appimage.binfmt = true;
    }) 

    (lib.mkIf config.addons.dssktop.x11.enable {

    })
    (lib.mkIf config.addons.dssktop.wayland.enable {

    })

  ]); 
}