summaryrefslogtreecommitdiff
path: root/os/srv/gaming.nix
diff options
context:
space:
mode:
Diffstat (limited to 'os/srv/gaming.nix')
-rw-r--r--os/srv/gaming.nix60
1 files changed, 48 insertions, 12 deletions
diff --git a/os/srv/gaming.nix b/os/srv/gaming.nix
index 05908f3..6ed977c 100644
--- a/os/srv/gaming.nix
+++ b/os/srv/gaming.nix
@@ -3,6 +3,7 @@
lib,
pkgs,
username,
+ inputs,
...
}:
let
@@ -19,7 +20,10 @@ in
default = cfg.enable;
};
games.enable = lib.mkEnableOption "enables specific native games";
- steam.enable = lib.mkEnableOption "enables steam utilities";
+ steam = {
+ enable = lib.mkEnableOption "enables the steam launcher";
+ enableSls = lib.mkEnableOption "enables the SLS Steam library modification";
+ };
vr.enable = lib.mkEnableOption "enables vr support";
};
@@ -69,17 +73,49 @@ in
})
# --- STEAM ---
- (lib.mkIf cfg.steam.enable {
- programs.steam = {
- enable = true;
- localNetworkGameTransfers.openFirewall = true;
- dedicatedServer.openFirewall = true;
- remotePlay.openFirewall = false;
- extest.enable = true;
- protontricks.enable = true;
- };
- environment.systemPackages = with pkgs; [ steamtinkerlaunch ];
- })
+ (lib.mkIf cfg.steam.enable (
+ lib.mkMerge [
+ {
+ programs.steam = {
+ enable = true;
+ localNetworkGameTransfers.openFirewall = true;
+ dedicatedServer.openFirewall = true;
+ remotePlay.openFirewall = false;
+ extest.enable = true;
+ protontricks.enable = true;
+ };
+ environment.systemPackages = with pkgs; [ steamtinkerlaunch ];
+ }
+
+ (lib.mkIf cfg.steam.enableSls {
+ home-manager.users.${username} = {
+ imports = [ inputs.sls-steam.homeModules.sls-steam ];
+
+ services.sls-steam.config = {
+ DisableFamilyShareLock = true;
+ SafeMode = false;
+ };
+ home.packages = [ inputs.sls-steam.packages.${pkgs.system}.wrapped ];
+
+ xdg.desktopEntries = {
+ "SLSsteam" = {
+ name = "SLSsteam";
+ comment = "Library modification for Steam";
+ exec = "${lib.getExe' inputs.sls-steam.packages.${pkgs.system}.wrapped "SLSsteam"} %U";
+ icon = "steam";
+ terminal = false;
+ type = "Application";
+ categories = [
+ "Game"
+ "Utility"
+ ];
+ mimeType = [ "x-scheme-handler/steamcmd" ];
+ };
+ };
+ };
+ })
+ ]
+ ))
# --- VR SUPPORT ---
(lib.mkIf cfg.vr.enable {