Add nvidia to a separate specialization so my card can be off most of the time
diff --git a/modules/nvidia.nix b/modules/nvidia.nix
index f7aa1bd..ec60d62 100644
--- a/modules/nvidia.nix
+++ b/modules/nvidia.nix
@@ -1,4 +1,4 @@
-{ pkgs, ... }:
+{ pkgs, lib, username, ... }:
 let
   prime-run = pkgs.writeScriptBin "prime-run" ''
     export __NV_PRIME_RENDER_OFFLOAD=1
@@ -15,6 +15,7 @@
       opengl.enable = true;
       nvidia = {
         modesetting.enable = true;
+        powerManagement.enable = true;
         prime = {
           offload.enable = true;
           intelBusId = "PCI:0:2:0";
@@ -22,6 +23,20 @@
         };
       };
     };
+
+    specialisation.nvidia-sync.configuration = {
+      system.nixos.tags = [ "nvidia-sync" ];
+      hardware.nvidia.powerManagement.enable = lib.mkForce false;
+      hardware.nvidia.prime.offload.enable = lib.mkForce false;
+      hardware.nvidia.prime.sync.enable = lib.mkForce true;
+      services.xserver.dpi = 96;
+
+      home-manager.users.${username}.home.file.".xinitrc".text = lib.mkBefore ''
+        ${pkgs.xorg.xrandr}/bin/xrandr --setprovideroutputsource modesetting NVIDIA-0
+        ${pkgs.xorg.xrandr}/bin/xrandr --output HDMI-0 --primary --mode 3840x2160 --pos 0x0 --rotate normal --output eDP-1-1 --mode 1920x1080 --pos 960x2160 --rotate normal
+      '';
+    };
+
     internal.allowUnfree = [ "nvidia-x11" "nvidia-settings" "cudatoolkit" ];
   };
   home.home.packages = [ pkgs.nvtop prime-run ];