diff --git a/flake.nix b/flake.nix
index 1ca6d274..96dfb893 100644
--- a/flake.nix
+++ b/flake.nix
@@ -41,34 +41,24 @@
           formatter = pkgs.nixfmt-rfc-style;
 
           pre-commit.settings.hooks =
-            ## Not everybody might want pre-commit hooks, so we make them
-            ## opt-in. Maybe one day we will decide to have them everywhere.
             let
-              inherit (builtins) concatStringsSep;
-              optin = [
-                "deployment"
-                "infra"
-                "keys"
-                "matrix"
-                "secrets"
-                "services"
-                "panel"
-                "website"
-              ];
-              files = "^((" + concatStringsSep "|" optin + ")/.*\\.nix|[^/]*\\.nix)$";
+              ## Add a directory here if pre-commit hooks shouldn't apply to it.
+              optout = [ "npins" ];
+              excludes = map (dir: "^${dir}/") optout;
             in
             {
               nixfmt-rfc-style = {
                 enable = true;
-                inherit files;
+                inherit excludes;
               };
               deadnix = {
                 enable = true;
-                inherit files;
+                inherit excludes;
               };
               trim-trailing-whitespace = {
                 enable = true;
-                inherit files;
+                files = "\\.nix$";
+                inherit excludes;
               };
             };