Enable steam

- Steam is a very important program, as beyond being used for games `steam-run`
  can be used to run many arbitrary applications that rely on FHS in an easy way
- Steam uses a lot of storage, so we'll store steam games on our HDD rather than
  on our SSD
diff --git a/modules/filesystems.nix b/modules/filesystems.nix
index 6f071bb..d988a6c 100644
--- a/modules/filesystems.nix
+++ b/modules/filesystems.nix
@@ -8,7 +8,7 @@
       hideMounts = true;
     };
 
-    environment.persistence."/nix/cache" = {
+    environment.persistence."/large/persist" = {
       hideMounts = true;
     };
 
@@ -32,6 +32,7 @@
 
     fileSystems."/large" = {
       device = "/dev/mapper/hdd";
+      neededForBoot = true;
       fsType = "ext4";
     };
 
diff --git a/modules/steam.nix b/modules/steam.nix
new file mode 100644
index 0000000..4577468
--- /dev/null
+++ b/modules/steam.nix
@@ -0,0 +1,14 @@
+{pkgs, username, ...}: {
+  home.home.packages = [pkgs.steam-run];
+
+  config = {
+    programs.steam = {
+      enable = true;
+      remotePlay.openFirewall = true;
+    };
+    hardware.steam-hardware.enable = true;
+
+    internal.allowUnfree = ["steam" "steam-original" "steam-runtime"];
+    environment.persistence."/large/persist".users.${username}.directories = [".local/share/Steam"];
+  };
+}