diff --git a/hosts/slab/configuration.nix b/hosts/slab/configuration.nix
index a391d66..ad90d21 100644
--- a/hosts/slab/configuration.nix
+++ b/hosts/slab/configuration.nix
@@ -30,6 +30,7 @@
 
       ../../system # nixfiles modules
       ./nvidia-optimus.nix
+      ./supergfxd.nix
     ];
 
   specialisation.plasma.configuration = {
@@ -42,6 +43,8 @@
     services.xserver.displayManager.startx.enable = lib.mkForce false;
   };
 
+  nixfiles.supergfxd.profile = lib.mkDefault "Integrated";
+
   # who needs a display manager?
   services.displayManager.sddm.enable = false;
 
diff --git a/hosts/slab/nvidia-optimus.nix b/hosts/slab/nvidia-optimus.nix
index a855cdc..a42f712 100644
--- a/hosts/slab/nvidia-optimus.nix
+++ b/hosts/slab/nvidia-optimus.nix
@@ -7,6 +7,7 @@
     nvidia.configuration = {
       system.nixos.tags = [ "NVIDIA" ];
 
+      nixfiles.supergfxd.profile = "Hybrid";
 
       # Load nvidia driver for Xorg and Wayland
       services.xserver.videoDrivers = ["amdgpu" "nvidia"];
diff --git a/hosts/slab/supergfxd.nix b/hosts/slab/supergfxd.nix
index f5f888c..b62c5bf 100644
--- a/hosts/slab/supergfxd.nix
+++ b/hosts/slab/supergfxd.nix
@@ -3,50 +3,64 @@ let
   gfx = {
     Integrated = {
       supergfxd = pkgs.writeText "supergfxd-integrated" ''
-{
-  "mode": "Integrated",
-  "vfio_enable": false,
-  "vfio_save": false,
-  "always_reboot": false,
-  "no_logind": false,
-  "logout_timeout_s": 180,
-  "hotplug_type": "None"
-}
+        {
+          "mode": "Integrated",
+          "vfio_enable": false,
+          "vfio_save": false,
+          "always_reboot": false,
+          "no_logind": false,
+          "logout_timeout_s": 180,
+          "hotplug_type": "None"
+        }
       '';
+      # old def (keeping this here just in case
+      # modprobe = pkgs.writeText "supergfxd-integrated-modprobe" ''
+      #   # Automatically generated by supergfxd
+      #   blacklist nouveau
+      #   alias nouveau off
+      #   blacklist nvidia_drm
+      #   blacklist nvidia_uvm
+      #   blacklist nvidia_modeset
+      #   blacklist nvidia
+      #   alias nvidia off
+
+      #   options nvidia-drm modeset=1
+      # '';
       modprobe = pkgs.writeText "supergfxd-integrated-modprobe" ''
-# Automatically generated by supergfxd
-blacklist nouveau
-alias nouveau off
-blacklist nvidia_drm
-blacklist nvidia_uvm
-blacklist nvidia_modeset
-blacklist nvidia
-alias nvidia off
-
-options nvidia-drm modeset=1
+        # Automatically generated by supergfxd
+        blacklist nouveau
+        blacklist nvidia_drm
+        blacklist nvidia_uvm
+        blacklist nvidia_modeset
+        blacklist nvidia
+        install nvidia_uvm /bin/false
+        install nvdia_drm /bin/false
+        install nvidia_modeset /bin/false
+        install nvidia /bin/false
+        install nouveau /bin/false
 
+        options nvidia-drm modeset=1
       '';
     };
     Hybrid = {
       supergfxd = pkgs.writeText "supergfxd-hybrid" ''
-{
-  "mode": "Hybrid",
-  "vfio_enable": false,
-  "vfio_save": false,
-  "always_reboot": false,
-  "no_logind": false,
-  "logout_timeout_s": 180,
-  "hotplug_type": "None"
-}
+        {
+          "mode": "Hybrid",
+          "vfio_enable": false,
+          "vfio_save": false,
+          "always_reboot": false,
+          "no_logind": false,
+          "logout_timeout_s": 180,
+          "hotplug_type": "None"
+        }
       '';
       modprobe = pkgs.writeText "supergfxd-hybrid-modprobe" ''
-# Automatically generated by supergfxd
-blacklist nouveau
-alias nouveau off
-options nvidia NVreg_DynamicPowerManagement=0x02
-
-options nvidia-drm modeset=1
+        # Automatically generated by supergfxd
+        blacklist nouveau
+        alias nouveau off
+        options nvidia NVreg_DynamicPowerManagement=0x02
 
+        options nvidia-drm modeset=1
       '';
     };
   };
@@ -61,17 +75,24 @@ options nvidia-drm modeset=1
 in {
   options = {
     nixfiles.supergfxd.profile = mkOption {
-      type = types.str;
-      default = "";
+      type = types.nullOr (types.enum (builtins.attrNames gfx));
+      default = null;
       example = "Integrated";
       description = "supergfxd profile to use";
     };
   };
 
   config = {
-    etc = mkIf (!(cfg.profile == ""))  {
-      # TODO figure out here how to assert if the value is in the gfx attrset
+    environment.etc = mkIf (!(builtins.isNull cfg.profile))  {
       # TODO actually configure the system settings here
+      "supergfxd.conf" = {
+        source = gfx.${cfg.profile}.supergfxd;
+        mode = "0644";
+      };
+      "modprobe.d/supergfxd.conf" = {
+        source = gfx.${cfg.profile}.modprobe;
+        mode = "0644";
+      };
     };
   };
 }