Add a trapint function
diff --git a/flake.lock b/flake.lock
index dcd7ab3..741c672 100644
--- a/flake.lock
+++ b/flake.lock
@@ -114,11 +114,11 @@
     },
     "nixpkgs-unstable": {
       "locked": {
-        "lastModified": 1657447684,
-        "narHash": "sha256-FCP9AuU1q6PE3vOeM5SFf58f/UKPBAsoSGDUGamNBbo=",
+        "lastModified": 1658290795,
+        "narHash": "sha256-t9hCidaSxPmzUimcSn51bjqcjjGsoQi6JLrAzJq0dz4=",
         "owner": "nixos",
         "repo": "nixpkgs",
-        "rev": "5f43d8b088d3771274bcfb69d3c7435b1121ac88",
+        "rev": "614a842b74b7a1497e8cfca7c61bec38f51911b3",
         "type": "github"
       },
       "original": {
diff --git a/src/apps/personal/zsh.nix b/src/apps/personal/zsh.nix
index 59529ee..18b275d 100644
--- a/src/apps/personal/zsh.nix
+++ b/src/apps/personal/zsh.nix
@@ -36,7 +36,12 @@
 
             if [[ $SHLVL != "1" ]]; then
                 export RPS1=$'%{\033[38;5;248m%}(%{$fg[red]%}L$SHLVL%{\033[38;5;248m%})%{\033[39m\033[49m%}'
-            fi
+                fi
+
+            function TRAPINT {
+                print -n "%{$fg_bold[red]%}^C%{$fg_no_bold[default]%}"
+                return $(( 128 + $1 ))
+            }
         '';
         enableSyntaxHighlighting = true;
         enableAutosuggestions = true;
diff --git a/src/system.nix b/src/system.nix
index 3c3bbe7..960b657 100644
--- a/src/system.nix
+++ b/src/system.nix
@@ -11,10 +11,12 @@
   # Prepare nix flakes
   nix = {
     package = pkgs-unstable.nixFlakes;
-    extraOptions = ''
-      experimental-features = nix-command flakes
-      auto-optimise-store = true
-    '';
+    settings = {
+      experimental-features = [ "nix-command" "flakes" ];
+      auto-optimise-store = true;
+      keep-outputs = true;
+      flake-registry = ./flake-registry.json;
+    };
   };
 
   # Use the systemd-boot EFI boot loader.