diff --git a/nixos/layers/steam.nix b/nixos/layers/steam.nix
new file mode 100644
index 0000000000000000000000000000000000000000..cd4956904a47a05e86a5537c4aa07282777c1d8a
--- /dev/null
+++ b/nixos/layers/steam.nix
@@ -0,0 +1,25 @@
+{ lib, pkgs, ... }:
+
+with lib;
+
+let
+  customSteam = pkgs.steam.override {
+    withPrimus = true;
+    extraPkgs = pkgs: with pkgs; [ glxinfo ];
+  };
+
+in
+{
+  hardware.opengl.driSupport32Bit = true;
+  hardware.pulseaudio.support32Bit = true;
+
+  users.users.steam = {
+    isNormalUser = true;
+    uid = 1100;
+    passwordFile = "/q/passwords/steam";
+    extraGroups = [ "audio" "input" ];
+    packages = [
+      customSteam
+    ];
+  };
+}