diff --git a/machines/aramis/default.nix b/machines/aramis/default.nix index bb78127..878f2c9 100644 --- a/machines/aramis/default.nix +++ b/machines/aramis/default.nix @@ -11,6 +11,7 @@ ./home.nix ./networking.nix ./profiles.nix + ./programs.nix ./services.nix ./sound.nix ]; diff --git a/machines/aramis/programs.nix b/machines/aramis/programs.nix new file mode 100644 index 0000000..426ca2a --- /dev/null +++ b/machines/aramis/programs.nix @@ -0,0 +1,7 @@ +{ ... }: +{ + my.programs = { + # Steam configuration + steam.enable = true; + }; +} diff --git a/modules/default.nix b/modules/default.nix index 798fb0d..d9c6c68 100644 --- a/modules/default.nix +++ b/modules/default.nix @@ -5,6 +5,7 @@ imports = [ ./hardware ./home.nix + ./programs ./services ./system ]; diff --git a/modules/programs/default.nix b/modules/programs/default.nix new file mode 100644 index 0000000..a6f14ed --- /dev/null +++ b/modules/programs/default.nix @@ -0,0 +1,8 @@ +# Program-related modules +{ ... }: + +{ + imports = [ + ./steam.nix + ]; +} diff --git a/modules/programs/steam.nix b/modules/programs/steam.nix new file mode 100644 index 0000000..dbdc0ce --- /dev/null +++ b/modules/programs/steam.nix @@ -0,0 +1,39 @@ +{ config, lib, pkgs, ... }: +let + cfg = config.my.programs.steam; +in +{ + options.my.programs.steam = with lib; { + enable = mkEnableOption "steam configuration"; + + dataDir = mkOption { + type = types.str; + default = "$XDG_DATA_HOME/steamlib"; + example = "/mnt/steam/"; + description = '' + Which directory should be used as HOME to run steam. + ''; + }; + }; + + config = lib.mkIf cfg.enable { + programs.steam = { + enable = true; + }; + + environment.systemPackages = builtins.map lib.hiPrio [ + # Respect XDG conventions, leave my HOME alone + (pkgs.writeScriptBin "steam" '' + #!/bin/sh + mkdir -p "${cfg.dataDir}" + HOME="${cfg.dataDir}" exec ${pkgs.steam}/bin/steam "$@" + '') + # Same, for GOG and other such games + (pkgs.writeScriptBin "steam-run" '' + #!/bin/sh + mkdir -p "${cfg.dataDir}" + HOME="${cfg.dataDir}" exec ${pkgs.steam-run-native}/bin/steam-run "$@" + '') + ]; + }; +}