Reformat with nixpkgs-fmt
diff --git a/flake.nix b/flake.nix
index 4933c46..71294fc 100644
--- a/flake.nix
+++ b/flake.nix
@@ -37,88 +37,96 @@
     sops-nix.inputs.nixpkgs.follows = "nixpkgs";
   };
 
-  outputs = inputs: let
-    inherit (inputs) self nixpkgs flake-utils;
-  in
-    flake-utils.lib.eachDefaultSystem (system: let
-      pkgs = import nixpkgs {
-        inherit system;
-        overlays = import ./overlays nixpkgs.lib;
-      };
-
-      utils = import ./utils nixpkgs.lib;
-
-      username = "minion";
-
-      isAttrType = type:
-        if builtins.elem type.name ["submodule"]
-        then true
-        else if type ? nestedTypes.elemType
-        then isAttrType type.nestedTypes.elemType
-        else false;
-
-      normalizeOptions = options:
-        if
-          nixpkgs.lib.traceSeqN 2 {
-            inherit options;
-            type = builtins.typeOf options;
-          }
-          builtins.typeOf
-          options
-          == "set"
-        then
-          nixpkgs.lib.mapAttrs (
-            name: value:
-              if
-                nixpkgs.lib.traceSeqN 3 {
-                  inherit name value;
-                  hasGetSubOpts = value ? getSubOptions;
-                  hasType = value ? type;
-                  isAttrType = value ? type && isAttrType value.type;
-                  typeName = value.type.name or "unnamed";
-                  type = builtins.typeOf value;
-                } (builtins.typeOf value)
-                == "set"
-              then
-                nixpkgs.lib.traceVal (normalizeOptions (
-                  if value ? type && isAttrType value.type
-                  then nixpkgs.lib.traceVal (value.type.getSubOptions [])
-                  else nixpkgs.lib.traceVal value
-                ))
-              else value
-          )
-          options
-        else options;
-    in {
-      packages.nixosConfigurations = {
-        default = nixpkgs.lib.nixosSystem {
+  outputs = inputs:
+    let
+      inherit (inputs) self nixpkgs flake-utils;
+    in
+    flake-utils.lib.eachDefaultSystem (system:
+      let
+        pkgs = import nixpkgs {
           inherit system;
-
-          modules = [
-            (nixpkgs.lib.pipe ./modules [
-              utils.nixFilesIn
-              (utils.interpretNonstandardModule (args:
-                args
-                // {
-                  home = args.config.home-manager.users.${username};
-                  home-options =
-                    nixpkgs.lib.traceVal (normalizeOptions
-                      (args.options.home-manager.users.type.getSubOptions []));
-                  inherit system utils;
-                }))
-            ])
-            {
-              minion = import ./config.nix;
-            }
-          ];
-
-          specialArgs = inputs // {inherit inputs username;};
+          overlays = import ./overlays nixpkgs.lib;
         };
-      };
-      devShell = pkgs.mkShell {
-        nativeBuildInputs = with pkgs; [nodePackages.prettier alejandra];
-        buildInputs = [];
-      };
-      formatter = pkgs.alejandra;
-    });
+
+        utils = import ./utils nixpkgs.lib;
+
+        username = "minion";
+
+        isAttrType = type:
+          if builtins.elem type.name [ "submodule" ]
+          then true
+          else if type ? nestedTypes.elemType
+          then isAttrType type.nestedTypes.elemType
+          else false;
+
+        normalizeOptions = options:
+          if
+            nixpkgs.lib.traceSeqN 2
+              {
+                inherit options;
+                type = builtins.typeOf options;
+              }
+              builtins.typeOf
+              options
+            == "set"
+          then
+            nixpkgs.lib.mapAttrs
+              (
+                name: value:
+                  if
+                    nixpkgs.lib.traceSeqN 3
+                      {
+                        inherit name value;
+                        hasGetSubOpts = value ? getSubOptions;
+                        hasType = value ? type;
+                        isAttrType = value ? type && isAttrType value.type;
+                        typeName = value.type.name or "unnamed";
+                        type = builtins.typeOf value;
+                      }
+                      (builtins.typeOf value)
+                    == "set"
+                  then
+                    nixpkgs.lib.traceVal
+                      (normalizeOptions (
+                        if value ? type && isAttrType value.type
+                        then nixpkgs.lib.traceVal (value.type.getSubOptions [ ])
+                        else nixpkgs.lib.traceVal value
+                      ))
+                  else value
+              )
+              options
+          else options;
+      in
+      {
+        packages.nixosConfigurations = {
+          default = nixpkgs.lib.nixosSystem {
+            inherit system;
+
+            modules = [
+              (nixpkgs.lib.pipe ./modules [
+                utils.nixFilesIn
+                (utils.interpretNonstandardModule (args:
+                  args
+                  // {
+                    home = args.config.home-manager.users.${username};
+                    home-options =
+                      nixpkgs.lib.traceVal (normalizeOptions
+                        (args.options.home-manager.users.type.getSubOptions [ ]));
+                    inherit system utils;
+                  }))
+              ])
+              {
+                minion = import ./config.nix;
+              }
+            ];
+
+            specialArgs = inputs // { inherit inputs username; };
+          };
+        };
+        devShell = pkgs.mkShell {
+          nativeBuildInputs = with pkgs; [ nodePackages.prettier nixpkgs-fmt ];
+          buildInputs = [ ];
+        };
+        formatter = pkgs.nixpkgs-fmt;
+      });
 }
diff --git a/modules/acpi.nix b/modules/acpi.nix
index fd20db3..d35f2b9 100644
--- a/modules/acpi.nix
+++ b/modules/acpi.nix
@@ -1,11 +1,10 @@
-{
-  pkgs,
-  config,
-  ...
+{ pkgs
+, config
+, ...
 }: {
   config = {
-    environment.systemPackages = with pkgs; [acpi acpitool];
+    environment.systemPackages = with pkgs; [ acpi acpitool ];
     services.acpid.enable = true;
-    boot.extraModulePackages = with config.boot.kernelPackages; [acpi_call];
+    boot.extraModulePackages = with config.boot.kernelPackages; [ acpi_call ];
   };
 }
diff --git a/modules/appimage.nix b/modules/appimage.nix
index 14f5f54..8ea1ce4 100644
--- a/modules/appimage.nix
+++ b/modules/appimage.nix
@@ -1,3 +1,3 @@
-{pkgs, ...}: {
-  home.home.packages = [pkgs.appimage-run];
+{ pkgs, ... }: {
+  home.home.packages = [ pkgs.appimage-run ];
 }
diff --git a/modules/audio.nix b/modules/audio.nix
index ece059c..fa5ef37 100644
--- a/modules/audio.nix
+++ b/modules/audio.nix
@@ -1,5 +1,5 @@
-{pkgs, ...}: {
-  home.home.packages = with pkgs; [pulseaudio pulsemixer];
+{ pkgs, ... }: {
+  home.home.packages = with pkgs; [ pulseaudio pulsemixer ];
   config = {
     security.rtkit.enable = true;
     services.pipewire = {
diff --git a/modules/battery.nix b/modules/battery.nix
index 381d956..07f2f70 100644
--- a/modules/battery.nix
+++ b/modules/battery.nix
@@ -1,12 +1,12 @@
-{pkgs, ...}: {
+{ pkgs, ... }: {
   config = {
     services.tlp.enable = true;
 
     powerManagement.powertop.enable = true;
 
     environment = {
-      systemPackages = [pkgs.powertop];
-      persistence."/nix/persist".directories = ["/var/cache/powertop"];
+      systemPackages = [ pkgs.powertop ];
+      persistence."/nix/persist".directories = [ "/var/cache/powertop" ];
     };
   };
 }
diff --git a/modules/bluetooth.nix b/modules/bluetooth.nix
index eb69610..db80e6f 100644
--- a/modules/bluetooth.nix
+++ b/modules/bluetooth.nix
@@ -1 +1 @@
-{config.hardware.bluetooth.enable = true;}
+{ config.hardware.bluetooth.enable = true; }
diff --git a/modules/calculator.nix b/modules/calculator.nix
index 6c5880d..faaffb3 100644
--- a/modules/calculator.nix
+++ b/modules/calculator.nix
@@ -1,4 +1,5 @@
-{pkgs, ...}: let
+{ pkgs, ... }:
+let
   R = pkgs.rWrapper.override {
     packages = with pkgs.rPackages; [
       zoo
@@ -9,6 +10,7 @@
       shiny
     ];
   };
-in {
-  home.home.packages = with pkgs; [wcalc R kalgebra];
+in
+{
+  home.home.packages = with pkgs; [ wcalc R kalgebra ];
 }
diff --git a/modules/ccache.nix b/modules/ccache.nix
index 664a2a9..c75caba 100644
--- a/modules/ccache.nix
+++ b/modules/ccache.nix
@@ -1,7 +1,6 @@
-{
-  username,
-  config,
-  ...
+{ username
+, config
+, ...
 }: {
   config.environment.persistence."/nix/persist".users.${username}.directories = [
     {
diff --git a/modules/charm.nix b/modules/charm.nix
index 8ac634b..112d134 100644
--- a/modules/charm.nix
+++ b/modules/charm.nix
@@ -1,3 +1,3 @@
-{pkgs, ...}: {
-  home.home.packages = [pkgs.charm];
+{ pkgs, ... }: {
+  home.home.packages = [ pkgs.charm ];
 }
diff --git a/modules/chromium.nix b/modules/chromium.nix
index 4189439..dadac9d 100644
--- a/modules/chromium.nix
+++ b/modules/chromium.nix
@@ -1,11 +1,10 @@
-{
-  pkgs,
-  username,
-  ...
+{ pkgs
+, username
+, ...
 }: {
-  home.home.packages = [pkgs.chromium];
+  home.home.packages = [ pkgs.chromium ];
 
   config.nixpkgs.config.chromium.commandLineArgs = "--enable-features=UseOzonePlatform --ozone-platform=wayland --enable-features=WebUIDarkMode --force-dark-mode --enable-features=WebRTCPipeWireCapturer";
 
-  config.environment.persistence."/nix/persist".users.${username}.directories = [".config/chromium"];
+  config.environment.persistence."/nix/persist".users.${username}.directories = [ ".config/chromium" ];
 }
diff --git a/modules/console.nix b/modules/console.nix
index 8ca8a80..71b9752 100644
--- a/modules/console.nix
+++ b/modules/console.nix
@@ -1,7 +1,7 @@
 {
   config = {
     boot = {
-      kernelParams = ["consoleblank=60"];
+      kernelParams = [ "consoleblank=60" ];
       consoleLogLevel = 2;
     };
     console = {
diff --git a/modules/dictionaries.nix b/modules/dictionaries.nix
index ca06f5a..054781a 100644
--- a/modules/dictionaries.nix
+++ b/modules/dictionaries.nix
@@ -1,4 +1,4 @@
-{pkgs, ...}: {
+{ pkgs, ... }: {
   config.environment.systemPackages = with pkgs.aspellDicts; [
     pkgs.aspell
     en
diff --git a/modules/direnv.nix b/modules/direnv.nix
index eeec5aa..5beb181 100644
--- a/modules/direnv.nix
+++ b/modules/direnv.nix
@@ -1,8 +1,8 @@
-{username, ...}: {
+{ username, ... }: {
   home.programs.direnv = {
     enable = true;
     nix-direnv.enable = true;
   };
 
-  config.environment.persistence."/nix/persist".users.${username}.directories = [".local/share/direnv/allow/"];
+  config.environment.persistence."/nix/persist".users.${username}.directories = [ ".local/share/direnv/allow/" ];
 }
diff --git a/modules/discord.nix b/modules/discord.nix
index 579b070..72e84d0 100644
--- a/modules/discord.nix
+++ b/modules/discord.nix
@@ -1,4 +1,4 @@
-{pkgs, ...}: {
+{ pkgs, ... }: {
   home.home = {
     packages = with pkgs; [
       discord
@@ -19,5 +19,5 @@
     };
   };
 
-  config.internal.allowUnfree = ["discord"];
+  config.internal.allowUnfree = [ "discord" ];
 }
diff --git a/modules/docker.nix b/modules/docker.nix
index 666bd8c..3f6a4f2 100644
--- a/modules/docker.nix
+++ b/modules/docker.nix
@@ -1,8 +1,8 @@
-{username, ...}: {
+{ username, ... }: {
   config = {
     virtualisation.docker.enable = true;
 
-    users.users.${username}.extraGroups = ["docker"];
+    users.users.${username}.extraGroups = [ "docker" ];
 
     environment.persistence."/nix/persist".directories = [
       {
diff --git a/modules/documents.nix b/modules/documents.nix
index 9fa7d51..93fc0c3 100644
--- a/modules/documents.nix
+++ b/modules/documents.nix
@@ -1,3 +1,3 @@
-{pkgs, ...}: {
-  home.home.packages = [pkgs.pandoc];
+{ pkgs, ... }: {
+  home.home.packages = [ pkgs.pandoc ];
 }
diff --git a/modules/emacs.nix b/modules/emacs.nix
index f5bad84..0b5e358 100644
--- a/modules/emacs.nix
+++ b/modules/emacs.nix
@@ -1,16 +1,17 @@
-{
-  pkgs,
-  config,
-  username,
-  lib,
-  ...
-}: let
+{ pkgs
+, config
+, username
+, lib
+, ...
+}:
+let
   cfg = config.minion.emacs;
-in {
+in
+{
   options.minion.emacs.enable = lib.mkEnableOption "Enable emacs";
 
   config = lib.mkIf cfg.enable {
-    environment.persistence."/nix/persist".users.${username}.directories = [".emacs.d"];
+    environment.persistence."/nix/persist".users.${username}.directories = [ ".emacs.d" ];
   };
 
   home.programs.emacs = {
diff --git a/modules/email.nix b/modules/email.nix
index 158f0e0..bb052f6 100644
--- a/modules/email.nix
+++ b/modules/email.nix
@@ -1,14 +1,13 @@
-{
-  pkgs,
-  config,
-  username,
-  home-manager-unstable,
-  home,
-  lib,
-  ...
+{ pkgs
+, config
+, username
+, home-manager-unstable
+, home
+, lib
+, ...
 }: {
   home = {
-    imports = ["${home-manager-unstable}/modules/programs/aerc.nix"];
+    imports = [ "${home-manager-unstable}/modules/programs/aerc.nix" ];
     accounts.email = {
       maildirBasePath = "Mail";
       accounts = {
@@ -81,25 +80,26 @@
     programs.aerc = {
       enable = true;
       extraConfig.general.unsafe-accounts-conf = true;
-      extraBinds = lib.pipe ./email/aerc-default-binds.toml [builtins.readFile builtins.fromTOML];
-      extraConfig.filters = let
-        defaultFilters = lib.pipe "${pkgs.aerc}/share/aerc/filters" [
-          builtins.readDir
-          builtins.attrNames
-          (builtins.map (f: {
-            name = f;
-            value = "${pkgs.aerc}/share/aerc/filters/${f}";
-          }))
-          builtins.listToAttrs
-        ];
-      in
+      extraBinds = lib.pipe ./email/aerc-default-binds.toml [ builtins.readFile builtins.fromTOML ];
+      extraConfig.filters =
+        let
+          defaultFilters = lib.pipe "${pkgs.aerc}/share/aerc/filters" [
+            builtins.readDir
+            builtins.attrNames
+            (builtins.map (f: {
+              name = f;
+              value = "${pkgs.aerc}/share/aerc/filters/${f}";
+            }))
+            builtins.listToAttrs
+          ];
+        in
         with defaultFilters; {
           "text/plain" = colorize;
           "text/calendar" = defaultFilters."show-ics-details.py";
           "text/html" = html;
         };
     };
-    home.packages = with pkgs; [lynx];
+    home.packages = with pkgs; [ lynx ];
     home.file.".mailcap".text = ''
       text/html; ${pkgs.lynx}/bin/lynx -force_html -dump %s; copiousoutput
       image/*; ${pkgs.kitty}/bin/kitty +kitten icat && read -r -n1 key
@@ -114,6 +114,6 @@
       owner = config.users.users.${username}.name;
       group = config.users.users.nobody.group;
     };
-    environment.persistence."/nix/persist".users.${username}.directories = ["Mail"];
+    environment.persistence."/nix/persist".users.${username}.directories = [ "Mail" ];
   };
 }
diff --git a/modules/figma.nix b/modules/figma.nix
index c8752da..884c0c3 100644
--- a/modules/figma.nix
+++ b/modules/figma.nix
@@ -1,4 +1,4 @@
-{pkgs, ...}: {
-  home.home.packages = [pkgs.figma];
-  config.internal.allowUnfree = ["figma"];
+{ pkgs, ... }: {
+  home.home.packages = [ pkgs.figma ];
+  config.internal.allowUnfree = [ "figma" ];
 }
diff --git a/modules/filesystems.nix b/modules/filesystems.nix
index a27e478..39db22b 100644
--- a/modules/filesystems.nix
+++ b/modules/filesystems.nix
@@ -1,4 +1,4 @@
-{impermanence, ...}: {
+{ impermanence, ... }: {
   imports = [
     impermanence.nixosModules.impermanence
   ];
@@ -15,7 +15,7 @@
     fileSystems."/" = {
       device = "none";
       fsType = "tmpfs";
-      options = ["defaults" "size=20G" "mode=755"];
+      options = [ "defaults" "size=20G" "mode=755" ];
     };
 
     fileSystems."/boot" = {
@@ -36,9 +36,9 @@
     };
 
     swapDevices = [
-      {device = "/dev/mapper/swap";}
+      { device = "/dev/mapper/swap"; }
     ];
 
-    boot.initrd.availableKernelModules = ["nvme"];
+    boot.initrd.availableKernelModules = [ "nvme" ];
   };
 }
diff --git a/modules/fonts.nix b/modules/fonts.nix
index 1927bff..fa36431 100644
--- a/modules/fonts.nix
+++ b/modules/fonts.nix
@@ -1,4 +1,4 @@
-{pkgs, ...}: {
+{ pkgs, ... }: {
   config.fonts = {
     fonts = with pkgs; [
       roboto
@@ -15,10 +15,10 @@
     enableDefaultFonts = true;
 
     fontconfig.defaultFonts = {
-      serif = ["Roboto Slab" "octicons"];
-      sansSerif = ["Roboto" "octicons"];
-      monospace = ["Liga Roboto Mono" "octicons"];
-      emoji = ["Twitter Color Emoji" "octicons"];
+      serif = [ "Roboto Slab" "octicons" ];
+      sansSerif = [ "Roboto" "octicons" ];
+      monospace = [ "Liga Roboto Mono" "octicons" ];
+      emoji = [ "Twitter Color Emoji" "octicons" ];
     };
   };
 }
diff --git a/modules/git.nix b/modules/git.nix
index 57c77ad..ea4aa00 100644
--- a/modules/git.nix
+++ b/modules/git.nix
@@ -1,4 +1,4 @@
-{pkgs, ...}: {
+{ pkgs, ... }: {
   home = {
     programs.git = {
       enable = true;
diff --git a/modules/glpaper.nix b/modules/glpaper.nix
index 2106428..7630b1c 100644
--- a/modules/glpaper.nix
+++ b/modules/glpaper.nix
@@ -1,4 +1,4 @@
-{pkgs, ...}: {
+{ pkgs, ... }: {
   home.wayland.windowManager.sway.config.startup = [
     {
       command = "\"pkill glpaper; ${pkgs.glpaper}/bin/glpaper eDP-1 ${./glpaper/shader.glsl} -F -W 1920 -H 1080\"";
diff --git a/modules/gpg.nix b/modules/gpg.nix
index 5103c7e..e68557d 100644
--- a/modules/gpg.nix
+++ b/modules/gpg.nix
@@ -1,7 +1,6 @@
-{
-  pkgs,
-  username,
-  ...
+{ pkgs
+, username
+, ...
 }: {
   home = {
     programs.gpg.enable = true;
diff --git a/modules/gtimelog.nix b/modules/gtimelog.nix
index d707005..e82e0ad 100644
--- a/modules/gtimelog.nix
+++ b/modules/gtimelog.nix
@@ -1,9 +1,8 @@
-{
-  pkgs,
-  username,
-  gtimelog,
-  lib,
-  ...
+{ pkgs
+, username
+, gtimelog
+, lib
+, ...
 }: {
   home.home = {
     packages = [
@@ -15,12 +14,12 @@
               glib-networking
             ])}"
         ];
-        nativeBuildInputs = oldAttrs.nativeBuildInputs ++ [pkgs.gobject-introspection];
-        buildInputs = oldAttrs.buildInputs ++ [pkgs.glib-networking];
+        nativeBuildInputs = oldAttrs.nativeBuildInputs ++ [ pkgs.gobject-introspection ];
+        buildInputs = oldAttrs.buildInputs ++ [ pkgs.glib-networking ];
       }))
     ];
     file.".gtimelog/gtimelogrc".source = ./gtimelog/gtimelogrc.toml;
   };
 
-  config.environment.persistence."/nix/persist".users.${username}.directories = [".gtimelog"];
+  config.environment.persistence."/nix/persist".users.${username}.directories = [ ".gtimelog" ];
 }
diff --git a/modules/gtk.nix b/modules/gtk.nix
index f7a7afe..b3de24f 100644
--- a/modules/gtk.nix
+++ b/modules/gtk.nix
@@ -1,9 +1,9 @@
-{pkgs, ...}: {
+{ pkgs, ... }: {
   home.gtk = {
     enable = true;
 
-    gtk3.extraConfig = {gtk-application-prefer-dark-theme = true;};
-    gtk4.extraConfig = {gtk-application-prefer-dark-theme = true;};
+    gtk3.extraConfig = { gtk-application-prefer-dark-theme = true; };
+    gtk4.extraConfig = { gtk-application-prefer-dark-theme = true; };
     theme = {
       name = "Adwaita-dark";
       package = pkgs.gnome.gnome-themes-extra;
diff --git a/modules/home-manager.nix b/modules/home-manager.nix
index 44f82d8..d4f29eb 100644
--- a/modules/home-manager.nix
+++ b/modules/home-manager.nix
@@ -1,9 +1,8 @@
-{
-  home-manager,
-  lib,
-  ...
+{ home-manager
+, lib
+, ...
 }: {
-  imports = [home-manager.nixosModules.home-manager];
+  imports = [ home-manager.nixosModules.home-manager ];
   config = {
     home-manager.useGlobalPkgs = true;
     nixpkgs.overlays = import ../overlays lib;
diff --git a/modules/kdeconnect.nix b/modules/kdeconnect.nix
index 3dee0f5..f1f9708 100644
--- a/modules/kdeconnect.nix
+++ b/modules/kdeconnect.nix
@@ -1,12 +1,12 @@
-{pkgs, ...}: {}
+{ pkgs, ... }: { }
 # Broken by rename on latest unstable
 /*
   {
   home.services.kdeconnect.indicator = true;
   config.programs.kdeconnect = {
-    enable = true; # Can't use home-manager's version because of the firewall
-    package = pkgs.plasma5Packages.kdeconnect-kde;
+  enable = true; # Can't use home-manager's version because of the firewall
+  package = pkgs.plasma5Packages.kdeconnect-kde;
   };
-}
+  }
 */
 
diff --git a/modules/keepassxc.nix b/modules/keepassxc.nix
index 8173422..ab150b3 100644
--- a/modules/keepassxc.nix
+++ b/modules/keepassxc.nix
@@ -1,15 +1,14 @@
-{
-  pkgs,
-  home,
-  config,
-  username,
-  ...
+{ pkgs
+, home
+, config
+, username
+, ...
 }: {
   home = {
-    home.packages = [pkgs.keepassxc];
+    home.packages = [ pkgs.keepassxc ];
     wayland.windowManager.sway.config.startup = [
       {
-        command = builtins.replaceStrings ["\n"] [" "] ''
+        command = builtins.replaceStrings [ "\n" ] [ " " ] ''
           ${pkgs.coreutils}/bin/cat
           ${config.sops.secrets.keepassPassword.path} |
           ${pkgs.keepassxc}/bin/keepassxc --pw-stdin
diff --git a/modules/keybase.nix b/modules/keybase.nix
index 79d972a..588067f 100644
--- a/modules/keybase.nix
+++ b/modules/keybase.nix
@@ -1,10 +1,9 @@
-{
-  pkgs,
-  config,
-  username,
-  ...
+{ pkgs
+, config
+, username
+, ...
 }: {
-  home.home.packages = [pkgs.keybase-gui];
+  home.home.packages = [ pkgs.keybase-gui ];
   config = {
     services = {
       keybase.enable = true;
diff --git a/modules/kitty.nix b/modules/kitty.nix
index 933885e..10f7dee 100644
--- a/modules/kitty.nix
+++ b/modules/kitty.nix
@@ -1,4 +1,4 @@
-{pkgs, ...}: {
+{ pkgs, ... }: {
   home = {
     programs.kitty = {
       enable = true;
diff --git a/modules/kmonad.nix b/modules/kmonad.nix
index 45e1956..ef5793b 100644
--- a/modules/kmonad.nix
+++ b/modules/kmonad.nix
@@ -1,5 +1,5 @@
-{kmonad, ...}: {
-  imports = [kmonad.nixosModules.default];
+{ kmonad, ... }: {
+  imports = [ kmonad.nixosModules.default ];
 
   config.services.kmonad = {
     enable = false;
diff --git a/modules/launcher.nix b/modules/launcher.nix
index 7b7d34c..3712495 100644
--- a/modules/launcher.nix
+++ b/modules/launcher.nix
@@ -1,12 +1,11 @@
-{
-  pkgs,
-  home,
-  lib,
-  ...
+{ pkgs
+, home
+, lib
+, ...
 }: {
   home = {
     home = {
-      packages = [pkgs.rofi-wayland];
+      packages = [ pkgs.rofi-wayland ];
       file.".config/rofi/config.rasi".source = ./launcher/config.rasi;
     };
     wayland.windowManager.sway.config.keybindings = lib.mkOptionDefault {
diff --git a/modules/lavat.nix b/modules/lavat.nix
index a28744b..02a07f8 100644
--- a/modules/lavat.nix
+++ b/modules/lavat.nix
@@ -1,3 +1,3 @@
 { nixpkgs-minion, system, ... }: {
-  home.home.packages = [nixpkgs-minion.legacyPackages.${system}.lavat];
+  home.home.packages = [ nixpkgs-minion.legacyPackages.${system}.lavat ];
 }
diff --git a/modules/light.nix b/modules/light.nix
index c6af189..3e11c2d 100644
--- a/modules/light.nix
+++ b/modules/light.nix
@@ -1 +1 @@
-{config.programs.light.enable = true;}
+{ config.programs.light.enable = true; }
diff --git a/modules/minecraft.nix b/modules/minecraft.nix
index adb616c..3a3f207 100644
--- a/modules/minecraft.nix
+++ b/modules/minecraft.nix
@@ -1,8 +1,7 @@
-{
-  pkgs,
-  username,
-  ...
+{ pkgs
+, username
+, ...
 }: {
-  home.home.packages = [pkgs.prismlauncher];
-  config.environment.persistence."/large/persist".users.${username}.directories = [".local/share/PrismLauncher"];
+  home.home.packages = [ pkgs.prismlauncher ];
+  config.environment.persistence."/large/persist".users.${username}.directories = [ ".local/share/PrismLauncher" ];
 }
diff --git a/modules/mongo.nix b/modules/mongo.nix
index 88e1478..94d4cb1 100644
--- a/modules/mongo.nix
+++ b/modules/mongo.nix
@@ -1,12 +1,12 @@
-{pkgs, ...}: {
+{ pkgs, ... }: {
   config = {
     services.mongodb = {
       package = pkgs.mongodb-4_2;
       enable = true;
       dbpath = "/tmp/mongodb";
     };
-    internal.allowUnfree = ["mongodb" "mongodb-compass"];
+    internal.allowUnfree = [ "mongodb" "mongodb-compass" ];
   };
 
-  home.home.packages = [pkgs.mongodb-compass];
+  home.home.packages = [ pkgs.mongodb-compass ];
 }
diff --git a/modules/nb.nix b/modules/nb.nix
index 6e6d113..42e452e 100644
--- a/modules/nb.nix
+++ b/modules/nb.nix
@@ -1,8 +1,8 @@
-{ pkgs, ...}: {
+{ pkgs, ... }: {
   home = {
-    home.packages = [pkgs.nb];
+    home.packages = [ pkgs.nb ];
     programs.zsh.initExtra = ''
-    export NB_DIR=/home/minion/Documents/wiki/notes
+      export NB_DIR=/home/minion/Documents/wiki/notes
     '';
   };
 }
diff --git a/modules/neovim.nix b/modules/neovim.nix
index e4908b6..8a6bce4 100644
--- a/modules/neovim.nix
+++ b/modules/neovim.nix
@@ -1,12 +1,13 @@
-args @ {
-  pkgs,
-  lib,
-  home,
-  username,
-  ...
-}: let
+args @ { pkgs
+, lib
+, home
+, username
+, ...
+}:
+let
   utils = import ../utils lib;
-in {
+in
+{
   config = {
     environment = {
       variables = {
@@ -18,7 +19,7 @@
         pkgs.strace
         pkgs.neovim
       ]; # The basic default packages, although with nvim replacing nano
-      persistence."/nix/persist".users.${username}.directories = [".local/share/cspell"];
+      persistence."/nix/persist".users.${username}.directories = [ ".local/share/cspell" ];
     };
   };
 
@@ -38,7 +39,7 @@
       vimdiffAlias = true;
     };
     home = {
-      packages = [pkgs.neovide];
+      packages = [ pkgs.neovide ];
       sessionVariables = {
         EDITOR = "${home.programs.neovim.finalPackage}/bin/nvim";
       };
diff --git a/modules/neovim/airline/default.nix b/modules/neovim/airline/default.nix
index bd1d1ce..8102d87 100644
--- a/modules/neovim/airline/default.nix
+++ b/modules/neovim/airline/default.nix
@@ -1,14 +1,13 @@
-{
-  pkgs,
-  lib,
-  ...
+{ pkgs
+, lib
+, ...
 }: {
   programs.neovim = {
     plugins = with pkgs.vimPlugins; [
       airline
       vim-airline-clock
     ];
-    extraConfig = lib.pipe [./tabline.vim ./theme.vim ./parts.vim] [
+    extraConfig = lib.pipe [ ./tabline.vim ./theme.vim ./parts.vim ] [
       (map builtins.readFile)
       (builtins.concatStringsSep "\n")
     ];
diff --git a/modules/neovim/binds/default.nix b/modules/neovim/binds/default.nix
index b9040ba..ec657a6 100644
--- a/modules/neovim/binds/default.nix
+++ b/modules/neovim/binds/default.nix
@@ -1,6 +1,6 @@
-{pkgs, ...}: {
+{ pkgs, ... }: {
   programs.neovim = {
-    plugins = [pkgs.vimPlugins.FixCursorHold-nvim];
+    plugins = [ pkgs.vimPlugins.FixCursorHold-nvim ];
     extraConfig = builtins.readFile ./binds.vim;
   };
 }
diff --git a/modules/neovim/brackets/default.nix b/modules/neovim/brackets/default.nix
index 45731f4..1964094 100644
--- a/modules/neovim/brackets/default.nix
+++ b/modules/neovim/brackets/default.nix
@@ -1,6 +1,6 @@
-{pkgs, ...}: {
+{ pkgs, ... }: {
   programs.neovim = {
-    plugins = [pkgs.vimPlugins.pear-tree];
+    plugins = [ pkgs.vimPlugins.pear-tree ];
     extraConfig = builtins.readFile ./pear-tree.vim;
   };
 }
diff --git a/modules/neovim/coc/default.nix b/modules/neovim/coc/default.nix
index c8f9ab2..40f8895 100644
--- a/modules/neovim/coc/default.nix
+++ b/modules/neovim/coc/default.nix
@@ -1,12 +1,11 @@
-{
-  pkgs,
-  system,
-  lib,
-  nixpkgs-minion,
-  home,
-  utils,
-  omnisharp-language-server,
-  ...
+{ pkgs
+, system
+, lib
+, nixpkgs-minion
+, home
+, utils
+, omnisharp-language-server
+, ...
 }: {
   programs.neovim = {
     coc = {
@@ -39,7 +38,7 @@
             path = "${home.home.homeDirectory}/.local/share/cspell/dictionary.txt";
           }
         ];
-        "cSpell.dictionaries" = ["imperative"];
+        "cSpell.dictionaries" = [ "imperative" ];
         "git.enableGutters" = false; # We're using another plugin to do this
         "rust-analyzer.server.path" = "${pkgs.rust-analyzer}/bin/rust-analyzer";
         "omnisharp.path" = "${pkgs.omnisharp-roslyn}/bin/OmniSharp";
@@ -54,11 +53,11 @@
         languageserver = {
           nix = {
             command = "${pkgs.rnix-lsp}/bin/rnix-lsp";
-            filetypes = ["nix"];
+            filetypes = [ "nix" ];
           };
         };
         "snippets.extends" = {
-          markdown = ["tex"];
+          markdown = [ "tex" ];
         };
         "snippets.autoTrigger" = false;
         "codeLens.enable" = true;
@@ -90,7 +89,7 @@
       vim-snippets
       coc-snippets
     ];
-    extraConfig = lib.pipe [./keybinds.vim ./theme.vim] [
+    extraConfig = lib.pipe [ ./keybinds.vim ./theme.vim ] [
       (map builtins.readFile)
       (builtins.concatStringsSep "\n")
     ];
diff --git a/modules/neovim/commentary/default.nix b/modules/neovim/commentary/default.nix
index f3d2a4d..a4d02af 100644
--- a/modules/neovim/commentary/default.nix
+++ b/modules/neovim/commentary/default.nix
@@ -1,3 +1,3 @@
-{pkgs, ...}: {
-  programs.neovim.plugins = [pkgs.vimPlugins.vim-commentary];
+{ pkgs, ... }: {
+  programs.neovim.plugins = [ pkgs.vimPlugins.vim-commentary ];
 }
diff --git a/modules/neovim/ctrlspace/default.nix b/modules/neovim/ctrlspace/default.nix
index b325cc9..d73b3b4 100644
--- a/modules/neovim/ctrlspace/default.nix
+++ b/modules/neovim/ctrlspace/default.nix
@@ -1,6 +1,6 @@
-{pkgs, ...}: {
+{ pkgs, ... }: {
   programs.neovim = {
-    plugins = [pkgs.vim-ctrlspace];
+    plugins = [ pkgs.vim-ctrlspace ];
     extraConfig = builtins.readFile ./settings.vim;
   };
 }
diff --git a/modules/neovim/fzf/default.nix b/modules/neovim/fzf/default.nix
index ce0d437..d134cd2 100644
--- a/modules/neovim/fzf/default.nix
+++ b/modules/neovim/fzf/default.nix
@@ -1,9 +1,9 @@
-{pkgs, ...}: {
+{ pkgs, ... }: {
   programs.neovim = {
     plugins = with pkgs.vimPlugins; [
       fzf-vim
       coc-fzf
     ];
-    extraPackages = [pkgs.fzf];
+    extraPackages = [ pkgs.fzf ];
   };
 }
diff --git a/modules/neovim/git/default.nix b/modules/neovim/git/default.nix
index a44fe0e..6eab462 100644
--- a/modules/neovim/git/default.nix
+++ b/modules/neovim/git/default.nix
@@ -1,7 +1,6 @@
-{
-  pkgs,
-  lib,
-  ...
+{ pkgs
+, lib
+, ...
 }: {
   programs.neovim = {
     extraConfig =
diff --git a/modules/neovim/hardtime/default.nix b/modules/neovim/hardtime/default.nix
index c0ea754..acfab5c 100644
--- a/modules/neovim/hardtime/default.nix
+++ b/modules/neovim/hardtime/default.nix
@@ -1,6 +1,6 @@
-{pkgs, ...}: {
+{ pkgs, ... }: {
   programs.neovim = {
-    plugins = [pkgs.vimPlugins.vim-hardtime];
+    plugins = [ pkgs.vimPlugins.vim-hardtime ];
     extraConfig = builtins.readFile ./hardtime.vim;
   };
 }
diff --git a/modules/neovim/indentation/default.nix b/modules/neovim/indentation/default.nix
index 722d39e..354cce5 100644
--- a/modules/neovim/indentation/default.nix
+++ b/modules/neovim/indentation/default.nix
@@ -1,4 +1,4 @@
-{pkgs, ...}: {
+{ pkgs, ... }: {
   programs.neovim = {
     extraConfig =
       builtins.readFile ./indentation.vim
diff --git a/modules/neovim/markdown/default.nix b/modules/neovim/markdown/default.nix
index 39dbf4d..214796b 100644
--- a/modules/neovim/markdown/default.nix
+++ b/modules/neovim/markdown/default.nix
@@ -1,4 +1,4 @@
-{pkgs, ...}: {
+{ pkgs, ... }: {
   programs.neovim = {
     plugins = with pkgs.vimPlugins; [
       vim-markdown
diff --git a/modules/neovim/neoformat/default.nix b/modules/neovim/neoformat/default.nix
index 55f8fd4..8abc7e1 100644
--- a/modules/neovim/neoformat/default.nix
+++ b/modules/neovim/neoformat/default.nix
@@ -1,7 +1,6 @@
-{
-  pkgs,
-  lib,
-  ...
+{ pkgs
+, lib
+, ...
 }: {
   programs.neovim = {
     plugins = with pkgs.vimPlugins; [
@@ -10,7 +9,7 @@
     extraConfig = builtins.readFile ./setup.vim;
     extraPackages = with pkgs; [
       nodePackages.prettier
-      alejandra
+      nixpkgs-fmt
       rustfmt
       shfmt
       astyle
diff --git a/modules/neovim/remote/default.nix b/modules/neovim/remote/default.nix
index 8986bad..7b639a4 100644
--- a/modules/neovim/remote/default.nix
+++ b/modules/neovim/remote/default.nix
@@ -1,4 +1,4 @@
-{pkgs, ...}: {
+{ pkgs, ... }: {
   programs = {
     neovim = {
       extraConfig = builtins.readFile ./remote.vim;
diff --git a/modules/neovim/support/default.nix b/modules/neovim/support/default.nix
index 80a2c7e..03cf186 100644
--- a/modules/neovim/support/default.nix
+++ b/modules/neovim/support/default.nix
@@ -1,6 +1,6 @@
-{pkgs, ...}: {
+{ pkgs, ... }: {
   programs.neovim = {
-    extraPackages = with pkgs; [pandoc unzip];
+    extraPackages = with pkgs; [ pandoc unzip ];
     extraConfig = builtins.readFile ./filetypes.vim;
   };
 }
diff --git a/modules/neovim/theme/default.nix b/modules/neovim/theme/default.nix
index 5c78fc4..4160599 100644
--- a/modules/neovim/theme/default.nix
+++ b/modules/neovim/theme/default.nix
@@ -1,4 +1,4 @@
-{pkgs, ...}: {
+{ pkgs, ... }: {
   programs.neovim = {
     plugins = with pkgs.vimPlugins; [
       onehalf
diff --git a/modules/neovim/tree-sitter/default.nix b/modules/neovim/tree-sitter/default.nix
index b29a6aa..24ae162 100644
--- a/modules/neovim/tree-sitter/default.nix
+++ b/modules/neovim/tree-sitter/default.nix
@@ -1,12 +1,13 @@
-{
-  pkgs,
-  lib,
-  ...
-}: let
+{ pkgs
+, lib
+, ...
+}:
+let
   disabledGrammars = [
     "tree-sitter-sql"
   ];
-in {
+in
+{
   programs.neovim = {
     plugins = with pkgs.vimPlugins; [
       (nvim-treesitter.withPlugins (plugins:
diff --git a/modules/neovim/venn/default.nix b/modules/neovim/venn/default.nix
index dae9bc6..5f4fc05 100644
--- a/modules/neovim/venn/default.nix
+++ b/modules/neovim/venn/default.nix
@@ -1,4 +1,4 @@
-{pkgs, ...}: {
+{ pkgs, ... }: {
   programs.neovim = {
     plugins = [
       pkgs.vimPlugins.venn-nvim
diff --git a/modules/neovim/wiki/default.nix b/modules/neovim/wiki/default.nix
index c2c23f6..4f1d7e5 100644
--- a/modules/neovim/wiki/default.nix
+++ b/modules/neovim/wiki/default.nix
@@ -1,7 +1,7 @@
-{pkgs, ...}: {
+{ pkgs, ... }: {
   programs.neovim = {
-    plugins = [pkgs.wiki-vim];
+    plugins = [ pkgs.wiki-vim ];
     extraConfig = builtins.readFile ./wiki.vim;
-    extraPackages = with pkgs; [pandoc texlive.combined.scheme-medium];
+    extraPackages = with pkgs; [ pandoc texlive.combined.scheme-medium ];
   };
 }
diff --git a/modules/neovim/wilder/default.nix b/modules/neovim/wilder/default.nix
index fb0bde4..ed2c33a 100644
--- a/modules/neovim/wilder/default.nix
+++ b/modules/neovim/wilder/default.nix
@@ -1,6 +1,6 @@
-{pkgs, ...}: {
+{ pkgs, ... }: {
   programs.neovim = {
-    plugins = [pkgs.vimPlugins.wilder-nvim];
+    plugins = [ pkgs.vimPlugins.wilder-nvim ];
     extraConfig = builtins.readFile ./wilder.vim;
   };
 }
diff --git a/modules/netlify.nix b/modules/netlify.nix
index 6a68be0..1604e2d 100644
--- a/modules/netlify.nix
+++ b/modules/netlify.nix
@@ -1,15 +1,14 @@
-{
-  pkgs,
-  username,
-  ...
+{ pkgs
+, username
+, ...
 }: {
   home = {
     programs.git.extraConfig.credential."https://*.netlify.app".helper = "netlify";
     home = {
-      packages = [pkgs.netlify-cli];
-      sessionPath = ["$HOME/.config/netlify/helper/bin"];
+      packages = [ pkgs.netlify-cli ];
+      sessionPath = [ "$HOME/.config/netlify/helper/bin" ];
     };
   };
 
-  config.environment.persistence."/nix/persist".users.${username}.directories = [".config/netlify"];
+  config.environment.persistence."/nix/persist".users.${username}.directories = [ ".config/netlify" ];
 }
diff --git a/modules/networking.nix b/modules/networking.nix
index f8e7fb4..93b5530 100644
--- a/modules/networking.nix
+++ b/modules/networking.nix
@@ -1,8 +1,7 @@
-{
-  config,
-  lib,
-  pkgs,
-  ...
+{ config
+, lib
+, pkgs
+, ...
 }: {
   config = {
     networking = {
@@ -19,7 +18,7 @@
         static routers=10.0.0.1
       '';
       hostName = "python";
-      nameservers = ["1.1.1.1" "1.0.0.1"];
+      nameservers = [ "1.1.1.1" "1.0.0.1" ];
       search = [
         "python.local"
       ];
@@ -62,8 +61,8 @@
     };
 
     environment = {
-      persistence."/nix/persist".directories = ["/var/db/dhcpcd"];
-      systemPackages = [pkgs.bandwidth];
+      persistence."/nix/persist".directories = [ "/var/db/dhcpcd" ];
+      systemPackages = [ pkgs.bandwidth ];
     };
   };
 }
diff --git a/modules/nix-index.nix b/modules/nix-index.nix
index 26b07e8..9ed29fe 100644
--- a/modules/nix-index.nix
+++ b/modules/nix-index.nix
@@ -1,12 +1,11 @@
-{
-  pkgs,
-  username,
-  ...
+{ pkgs
+, username
+, ...
 }: {
   home.programs.nix-index = {
     enable = true;
     enableZshIntegration = true;
   };
 
-  config.environment.persistence."/nix/persist".users.${username}.directories = [".cache/nix-index"];
+  config.environment.persistence."/nix/persist".users.${username}.directories = [ ".cache/nix-index" ];
 }
diff --git a/modules/nix-tree.nix b/modules/nix-tree.nix
index f88617c..203415b 100644
--- a/modules/nix-tree.nix
+++ b/modules/nix-tree.nix
@@ -1,3 +1,3 @@
-{pkgs, ...}: {
-  home.home.packages = [pkgs.nix-tree];
+{ pkgs, ... }: {
+  home.home.packages = [ pkgs.nix-tree ];
 }
diff --git a/modules/nix-version-diff.nix b/modules/nix-version-diff.nix
index 6142216..ab4d335 100644
--- a/modules/nix-version-diff.nix
+++ b/modules/nix-version-diff.nix
@@ -1,12 +1,11 @@
-{
-  pkgs,
-  lib,
-  ...
+{ pkgs
+, lib
+, ...
 }: {
   config.system.activationScripts.report-changes = ''
     PATH=$PATH:${lib.makeBinPath (with pkgs; [nvd nix])}
     nvd diff $(ls -dv /nix/var/nix/profiles/system-*-link | tail -2)
   '';
 
-  home.home.packages = [pkgs.nvd];
+  home.home.packages = [ pkgs.nvd ];
 }
diff --git a/modules/nix.nix b/modules/nix.nix
index 4f9261f..1ccb88e 100644
--- a/modules/nix.nix
+++ b/modules/nix.nix
@@ -1,18 +1,17 @@
-{
-  pkgs,
-  registry,
-  nixpkgs,
-  flake-utils-plus,
-  ...
+{ pkgs
+, registry
+, nixpkgs
+, flake-utils-plus
+, ...
 }: {
-  imports = [flake-utils-plus.nixosModules.autoGenFromInputs];
+  imports = [ flake-utils-plus.nixosModules.autoGenFromInputs ];
   config = {
     nix = {
       generateNixPathFromInputs = true;
       linkInputs = true;
       registry.nixpkgs.flake = nixpkgs;
       settings = {
-        experimental-features = ["nix-command" "flakes"];
+        experimental-features = [ "nix-command" "flakes" ];
         auto-optimise-store = true;
         keep-outputs = true;
         flake-registry = "${registry}/flake-registry.json";
diff --git a/modules/nyxt.nix b/modules/nyxt.nix
index 580b438..f7aace6 100644
--- a/modules/nyxt.nix
+++ b/modules/nyxt.nix
@@ -1,6 +1,6 @@
-{pkgs, ...}: {
+{ pkgs, ... }: {
   home.home = {
-    packages = [pkgs.nyxt];
+    packages = [ pkgs.nyxt ];
 
     file.".config/nyxt/init.lisp".source = ./nyxt/init.lisp;
   };
diff --git a/modules/pkg-config.nix b/modules/pkg-config.nix
index 4123cbf..b8a4304 100644
--- a/modules/pkg-config.nix
+++ b/modules/pkg-config.nix
@@ -1,4 +1,4 @@
-{pkgs, ...}: {
+{ pkgs, ... }: {
   config.environment.systemPackages = [
     pkgs.pkg-config
   ];
diff --git a/modules/plymouth.nix b/modules/plymouth.nix
index a7a580e..e7b70df 100644
--- a/modules/plymouth.nix
+++ b/modules/plymouth.nix
@@ -1,4 +1,4 @@
-{pkgs, ...}: {
+{ pkgs, ... }: {
   config.boot.plymouth = {
     enable = true;
     font = "${pkgs.roboto}/share/fonts/truetype/Roboto-Regular.ttf";
diff --git a/modules/polkit.nix b/modules/polkit.nix
index fb0e4fd..6a03318 100644
--- a/modules/polkit.nix
+++ b/modules/polkit.nix
@@ -1,15 +1,15 @@
-{pkgs, ...}: {
+{ pkgs, ... }: {
   home = {
     home.packages = [
       pkgs.polkit_gnome
     ];
 
     wayland.windowManager.sway.config.startup = [
-      {command = "${pkgs.polkit_gnome}/libexec/polkit-gnome-authentication-agent-1";}
+      { command = "${pkgs.polkit_gnome}/libexec/polkit-gnome-authentication-agent-1"; }
     ];
   };
   config = {
     security.polkit.enable = true;
-    environment.systemPackages = [pkgs.polkit];
+    environment.systemPackages = [ pkgs.polkit ];
   };
 }
diff --git a/modules/printing.nix b/modules/printing.nix
index 848b61c..f2c289a 100644
--- a/modules/printing.nix
+++ b/modules/printing.nix
@@ -1,10 +1,10 @@
-{pkgs, ...}: {
+{ pkgs, ... }: {
   config = {
-    environment.systemPackages = [pkgs.gtklp];
+    environment.systemPackages = [ pkgs.gtklp ];
     services = {
       printing = {
         enable = true;
-        drivers = with pkgs; [foomatic-filters hplip cups-filters];
+        drivers = with pkgs; [ foomatic-filters hplip cups-filters ];
         browsing = true;
         browsedConf = ''
           BrowseDNSSDSubTypes _cups,_print
diff --git a/modules/qt.nix b/modules/qt.nix
index 28c128d..0b111db 100644
--- a/modules/qt.nix
+++ b/modules/qt.nix
@@ -1,4 +1,4 @@
-{pkgs, ...}: {
+{ pkgs, ... }: {
   home.qt = {
     enable = true;
     platformTheme = "gnome";
diff --git a/modules/razer.nix b/modules/razer.nix
index a8387d9..6c961d1 100644
--- a/modules/razer.nix
+++ b/modules/razer.nix
@@ -1,8 +1,8 @@
-{pkgs, ...}: {
+{ pkgs, ... }: {
   config.hardware.openrazer = {
     enable = true;
-    users = ["minion"];
+    users = [ "minion" ];
   };
 
-  home.home.packages = [pkgs.razergenie];
+  home.home.packages = [ pkgs.razergenie ];
 }
diff --git a/modules/ripgrep.nix b/modules/ripgrep.nix
index 8acb597..f96bf42 100644
--- a/modules/ripgrep.nix
+++ b/modules/ripgrep.nix
@@ -1,6 +1,6 @@
-{pkgs, ...}: {
+{ pkgs, ... }: {
   home.home = {
-    packages = [pkgs.ripgrep];
+    packages = [ pkgs.ripgrep ];
     shellAliases.rg = "${pkgs.ripgrep}/bin/rg --smart-case --pretty --multiline-dotall";
   };
 }
diff --git a/modules/rust.nix b/modules/rust.nix
index 696dc49..06b1fb6 100644
--- a/modules/rust.nix
+++ b/modules/rust.nix
@@ -1,7 +1,6 @@
-{
-  username,
-  pkgs,
-  ...
+{ username
+, pkgs
+, ...
 }: {
   home.home.packages = with pkgs; [
     cargo
@@ -11,5 +10,5 @@
     bacon
     gcc
   ];
-  config.environment.persistence."/nix/persist".users.${username}.directories = [".cargo"];
+  config.environment.persistence."/nix/persist".users.${username}.directories = [ ".cargo" ];
 }
diff --git a/modules/scanning.nix b/modules/scanning.nix
index ed3cbbf..ccf86a6 100644
--- a/modules/scanning.nix
+++ b/modules/scanning.nix
@@ -1,4 +1,4 @@
-{username, ...}: {
+{ username, ... }: {
   config = {
     hardware.sane.enable = true;
     users.users.${username}.extraGroups = [ "scanner" "lp" ];
diff --git a/modules/screenshots.nix b/modules/screenshots.nix
index 638ab5d..c4131cf 100644
--- a/modules/screenshots.nix
+++ b/modules/screenshots.nix
@@ -1,11 +1,10 @@
-{
-  pkgs,
-  lib,
-  home,
-  ...
+{ pkgs
+, lib
+, home
+, ...
 }: {
   home = {
-    home.packages = with pkgs; [grim slurp];
+    home.packages = with pkgs; [ grim slurp ];
 
     wayland.windowManager.sway.config.keybindings = lib.mkOptionDefault {
       "${home.wayland.windowManager.sway.config.modifier}+Shift+s" = "exec mkdir -p ~/Screenshots && grim -g \"$(slurp)\" - | tee ~/Screenshots/\"$(date --rfc-3339=seconds)\".png | wl-copy";
diff --git a/modules/secrets.nix b/modules/secrets.nix
index 4ccebcb..1a4128d 100644
--- a/modules/secrets.nix
+++ b/modules/secrets.nix
@@ -1,7 +1,6 @@
-{
-  pkgs,
-  sops-nix,
-  ...
+{ pkgs
+, sops-nix
+, ...
 }: {
   imports = [
     sops-nix.nixosModules.sops
@@ -13,8 +12,8 @@
     ];
     sops = {
       defaultSopsFile = ../secrets/secrets.json;
-      gnupg.sshKeyPaths = ["/nix/persist/etc/ssh/ssh_host_rsa_key"];
-      age.sshKeyPaths = [];
+      gnupg.sshKeyPaths = [ "/nix/persist/etc/ssh/ssh_host_rsa_key" ];
+      age.sshKeyPaths = [ ];
     };
   };
 }
diff --git a/modules/security.nix b/modules/security.nix
index 165ae3f..ebccf3f 100644
--- a/modules/security.nix
+++ b/modules/security.nix
@@ -1,11 +1,12 @@
-{
-  lib,
-  pkgs,
-  config,
-  ...
-}: let
+{ lib
+, pkgs
+, config
+, ...
+}:
+let
   lockMessage = "This computer has been locked, please enter your password to continue";
-in {
+in
+{
   config = {
     security.apparmor = {
       enable = true;
@@ -30,29 +31,31 @@
     };
   };
 
-  home = let
-    lockCommand =
-      lib.pipe ''
-        ${pkgs.sway}/bin/swaymsg output "*" dpms off
-        ${pkgs.systemd}/bin/systemd-inhibit --why="Already locked" --what=idle --who="lock script" ${config.security.wrapperDir}/physlock -s -p "${lockMessage}"
-        while [ $(${pkgs.sway}/bin/swaymsg -t get_outputs | ${pkgs.jq}/bin/jq "[.[] | .dpms] | any") = "false" ]; do ${pkgs.coreutils}/bin/sleep 0.1; ${pkgs.sway}/bin/swaymsg output "*" dpms on; done
-      '' [
-        (lib.splitString "\n")
-        (lib.filter (line: line != ""))
-        (lib.concatStringsSep " && ")
-      ];
-  in {
-    services.swayidle = {
-      enable = true;
-      timeouts = [
-        {
-          timeout = 60;
-          command = lockCommand;
-        }
+  home =
+    let
+      lockCommand =
+        lib.pipe ''
+          ${pkgs.sway}/bin/swaymsg output "*" dpms off
+          ${pkgs.systemd}/bin/systemd-inhibit --why="Already locked" --what=idle --who="lock script" ${config.security.wrapperDir}/physlock -s -p "${lockMessage}"
+          while [ $(${pkgs.sway}/bin/swaymsg -t get_outputs | ${pkgs.jq}/bin/jq "[.[] | .dpms] | any") = "false" ]; do ${pkgs.coreutils}/bin/sleep 0.1; ${pkgs.sway}/bin/swaymsg output "*" dpms on; done
+        '' [
+          (lib.splitString "\n")
+          (lib.filter (line: line != ""))
+          (lib.concatStringsSep " && ")
+        ];
+    in
+    {
+      services.swayidle = {
+        enable = true;
+        timeouts = [
+          {
+            timeout = 60;
+            command = lockCommand;
+          }
+        ];
+      };
+      home.packages = [
+        (pkgs.writeScriptBin "lock" lockCommand)
       ];
     };
-    home.packages = [
-      (pkgs.writeScriptBin "lock" lockCommand)
-    ];
-  };
 }
diff --git a/modules/spotify.nix b/modules/spotify.nix
index 66461a0..237dc59 100644
--- a/modules/spotify.nix
+++ b/modules/spotify.nix
@@ -1,9 +1,8 @@
-{
-  pkgs,
-  config,
-  home,
-  username,
-  ...
+{ pkgs
+, config
+, home
+, username
+, ...
 }: {
   home = {
     services.spotifyd = {
@@ -24,7 +23,7 @@
         };
       };
     };
-    home.packages = [pkgs.spotify-tui];
+    home.packages = [ pkgs.spotify-tui ];
   };
   config = {
     sops.secrets.spotifyUsername = {
diff --git a/modules/ssh.nix b/modules/ssh.nix
index 405f607..735267a 100644
--- a/modules/ssh.nix
+++ b/modules/ssh.nix
@@ -1,4 +1,4 @@
-{username, ...}: {
+{ username, ... }: {
   config = {
     services.openssh.enable = true;
 
@@ -6,7 +6,7 @@
       directories = [
         "/etc/ssh"
       ];
-      users.${username}.directories = [".ssh"];
+      users.${username}.directories = [ ".ssh" ];
     };
   };
 
diff --git a/modules/steam.nix b/modules/steam.nix
index f285b7c..dea29e6 100644
--- a/modules/steam.nix
+++ b/modules/steam.nix
@@ -1,7 +1,6 @@
-{
-  pkgs,
-  username,
-  ...
+{ pkgs
+, username
+, ...
 }: {
   config = {
     programs.steam = {
@@ -10,10 +9,12 @@
     };
     hardware.steam-hardware.enable = true;
 
-    internal.allowUnfree = ["steam" "steam-original" "steam-runtime"];
+    internal.allowUnfree = [ "steam" "steam-original" "steam-runtime" ];
     environment = {
-      persistence."/large/persist".users.${username}.directories = [".local/share/Steam"];
-      systemPackages = with pkgs; [gamescope gamemode /*(
+      persistence."/large/persist".users.${username}.directories = [ ".local/share/Steam" ];
+      systemPackages = with pkgs; [
+        gamescope
+        gamemode /*(
         writeTextDir "share/applications/steam.desktop" ''
           [Desktop Entry]
           Name=Steam
@@ -28,7 +29,8 @@
           PrefersNonDefaultGPU=true
           X-KDE-RunOnDiscreteGpu=true
         ''
-      )*/];
+      )*/
+      ];
     };
     boot.kernel.sysctl."dev.i915.perf_stream_paranoid" = "0";
   };
diff --git a/modules/sway.nix b/modules/sway.nix
index 2032bf4..90cda43 100644
--- a/modules/sway.nix
+++ b/modules/sway.nix
@@ -1,8 +1,7 @@
-{
-  pkgs,
-  lib,
-  home,
-  ...
+{ pkgs
+, lib
+, home
+, ...
 }: {
   home = {
     wayland.windowManager.sway = {
@@ -11,14 +10,14 @@
       package = pkgs.sway-unwrapped;
 
       config = rec {
-        assigns = {};
-        bars = [];
-        colors = {};
+        assigns = { };
+        bars = [ ];
+        colors = { };
         defaultWorkspace = null;
         down = "j";
-        floating = {};
-        focus = {};
-        fonts = {};
+        floating = { };
+        focus = { };
+        fonts = { };
         gaps = {
           inner = 10;
           top = -10;
@@ -90,8 +89,7 @@
             resolution = "1920x1080";
             position = "0,2160";
           };
-          "*" = {
-          };
+          "*" = { };
         };
         right = "l";
         seat = {
@@ -100,7 +98,7 @@
           };
         };
         startup = [
-          {command = "dbus-update-activation-environment --systemd DISPLAY WAYLAND_DISPLAY SWAYSOCK";}
+          { command = "dbus-update-activation-environment --systemd DISPLAY WAYLAND_DISPLAY SWAYSOCK"; }
           {
             command = "light -N 1";
             always = false;
@@ -112,10 +110,10 @@
         ];
         terminal = "${pkgs.kitty}/bin/kitty";
         up = "k";
-        window = {};
+        window = { };
         workspaceAutoBackAndForth = true;
         workspaceLayout = "default";
-        workspaceOutputAssign = [];
+        workspaceOutputAssign = [ ];
       };
 
       extraSessionCommands = ''
diff --git a/modules/syncthing.nix b/modules/syncthing.nix
index af0f2be..823259b 100644
--- a/modules/syncthing.nix
+++ b/modules/syncthing.nix
@@ -1,5 +1,5 @@
-{username, ...}: {
+{ username, ... }: {
   home.services.syncthing.enable = true;
 
-  config.environment.persistence."/nix/persist".users.${username}.directories = ["Sync" ".config/syncthing"];
+  config.environment.persistence."/nix/persist".users.${username}.directories = [ "Sync" ".config/syncthing" ];
 }
diff --git a/modules/unfree.nix b/modules/unfree.nix
index f5f4a9e..b6d187e 100644
--- a/modules/unfree.nix
+++ b/modules/unfree.nix
@@ -1,14 +1,15 @@
-{
-  lib,
-  config,
-  ...
-}: let
+{ lib
+, config
+, ...
+}:
+let
   allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) config.internal.allowUnfree;
-in {
+in
+{
   options.internal.allowUnfree = with lib;
     mkOption {
       type = types.listOf types.str;
-      default = [];
+      default = [ ];
       description = "Unfree packages to permit installing via the AllowUnfreePredicate";
     };
   config = {
diff --git a/modules/users.nix b/modules/users.nix
index bd3f46f..59355c0 100644
--- a/modules/users.nix
+++ b/modules/users.nix
@@ -1,15 +1,14 @@
-{
-  pkgs,
-  config,
-  username,
-  ...
+{ pkgs
+, config
+, username
+, ...
 }: {
   config = {
     users.mutableUsers = false;
 
     users.users.${username} = {
       isNormalUser = true;
-      extraGroups = ["wheel" "kvm" "docker" "containerd" "dialout" "libvirtd" "video" "tty" config.users.groups.keys.name];
+      extraGroups = [ "wheel" "kvm" "docker" "containerd" "dialout" "libvirtd" "video" "tty" config.users.groups.keys.name ];
       shell = pkgs.zsh;
       passwordFile = config.sops.secrets.password.path;
     };
@@ -18,7 +17,7 @@
       # Important for physlock + sleep
     };
 
-    environment.persistence."/nix/persist".users.${username}.directories = ["Code" "Documents" "Pictures"];
+    environment.persistence."/nix/persist".users.${username}.directories = [ "Code" "Documents" "Pictures" ];
     sops.secrets.password = {
       mode = "0400";
       neededForUsers = true;
diff --git a/modules/utilities.nix b/modules/utilities.nix
index 07c8b04..35ea7c3 100644
--- a/modules/utilities.nix
+++ b/modules/utilities.nix
@@ -1,4 +1,4 @@
-{pkgs, ...}: {
+{ pkgs, ... }: {
   # Basic shell scripting utilities, they don't deserve their own file but I use
   # them
   config = {
diff --git a/modules/vieb.nix b/modules/vieb.nix
index 9b59c4d..1fdedba 100644
--- a/modules/vieb.nix
+++ b/modules/vieb.nix
@@ -1,3 +1,3 @@
-{pkgs, ...}: {
-  home.home.packages = [pkgs.vieb];
+{ pkgs, ... }: {
+  home.home.packages = [ pkgs.vieb ];
 }
diff --git a/modules/vscode.nix b/modules/vscode.nix
index 76bf299..c3791ed 100644
--- a/modules/vscode.nix
+++ b/modules/vscode.nix
@@ -1,8 +1,7 @@
-{
-  pkgs,
-  vscode-extensions,
-  system,
-  ...
+{ pkgs
+, vscode-extensions
+, system
+, ...
 }: {
   home.programs.vscode = {
     enable = true;
@@ -20,5 +19,5 @@
       "files.autoSaveDelay" = 100;
     };
   };
-  config.internal.allowUnfree = ["vscode-extension-ms-vsliveshare-vsliveshare"];
+  config.internal.allowUnfree = [ "vscode-extension-ms-vsliveshare-vsliveshare" ];
 }
diff --git a/modules/waybar.nix b/modules/waybar.nix
index ed2fb1b..dab9164 100644
--- a/modules/waybar.nix
+++ b/modules/waybar.nix
@@ -1,12 +1,12 @@
-{pkgs, ...}: {
+{ pkgs, ... }: {
   home = {
     programs.waybar = {
       enable = true;
       settings = [
         {
-          modules-left = ["sway/workspaces"];
+          modules-left = [ "sway/workspaces" ];
 
-          modules-center = ["sway/window"];
+          modules-center = [ "sway/window" ];
 
           modules-right = [
             "backlight"
@@ -113,6 +113,6 @@
         always = true;
       }
     ];
-    home.packages = with pkgs; [libappindicator swaynotificationcenter];
+    home.packages = with pkgs; [ libappindicator swaynotificationcenter ];
   };
 }
diff --git a/modules/waycorner.nix b/modules/waycorner.nix
index a84466e..d7553a9 100644
--- a/modules/waycorner.nix
+++ b/modules/waycorner.nix
@@ -1,22 +1,24 @@
-{pkgs, ...}: let
+{ pkgs, ... }:
+let
   config = {
     left = {
-      enter_command = [./systemd-inhibit/inhibit-idle.sh];
-      exit_command = [./systemd-inhibit/stop-inhibiting-idle.sh];
-      locations = ["bottom_right" "bottom_left"];
+      enter_command = [ ./systemd-inhibit/inhibit-idle.sh ];
+      exit_command = [ ./systemd-inhibit/stop-inhibiting-idle.sh ];
+      locations = [ "bottom_right" "bottom_left" ];
       size = 10;
       timeout_ms = 250;
     };
     "left.output".description = "";
   };
-in {
+in
+{
   home = {
     home = {
-      packages = [pkgs.waycorner];
-      file.".config/waycorner/config.toml".source = (pkgs.formats.toml {}).generate "config.toml" config;
+      packages = [ pkgs.waycorner ];
+      file.".config/waycorner/config.toml".source = (pkgs.formats.toml { }).generate "config.toml" config;
     };
     wayland.windowManager.sway.config.startup = [
-      {command = "${pkgs.waycorner}/bin/waycorner";}
+      { command = "${pkgs.waycorner}/bin/waycorner"; }
     ];
   };
 }
diff --git a/modules/xdg.nix b/modules/xdg.nix
index 64cffaf..7813a8a 100644
--- a/modules/xdg.nix
+++ b/modules/xdg.nix
@@ -1,5 +1,5 @@
-{pkgs, ...}: {
-  home.home.packages = [pkgs.xdg-utils];
+{ pkgs, ... }: {
+  home.home.packages = [ pkgs.xdg-utils ];
   config.xdg.portal = {
     enable = true;
     wlr.enable = true;
diff --git a/modules/zoxide.nix b/modules/zoxide.nix
index 8de356f..acdd166 100644
--- a/modules/zoxide.nix
+++ b/modules/zoxide.nix
@@ -1,8 +1,8 @@
-{username, ...}: {
+{ username, ... }: {
   home.programs.zoxide = {
     enable = true;
-    options = ["--cmd=cd"];
+    options = [ "--cmd=cd" ];
   };
-  config.environment.persistence."/nix/persist".users.${username}.directories = [".local/share/zoxide"];
+  config.environment.persistence."/nix/persist".users.${username}.directories = [ ".local/share/zoxide" ];
   # Zoxide overwrites its db file, so we can't just use .files here
 }
diff --git a/modules/zsh.nix b/modules/zsh.nix
index 635388f..fffc039 100644
--- a/modules/zsh.nix
+++ b/modules/zsh.nix
@@ -1,9 +1,8 @@
-{
-  pkgs,
-  home,
-  username,
-  fzf-tab,
-  ...
+{ pkgs
+, home
+, username
+, fzf-tab
+, ...
 }: {
   home = {
     programs.zsh = {
@@ -16,7 +15,7 @@
       ];
       oh-my-zsh = {
         enable = true;
-        plugins = ["git"];
+        plugins = [ "git" ];
         theme = "crunch";
       };
       history = {
@@ -74,8 +73,8 @@
         ":q" = "exit";
         "q" = "exit";
       };
-      packages = [pkgs.fzf];
+      packages = [ pkgs.fzf ];
     };
   };
-  config.environment.persistence."/nix/persist".users.${username}.directories = [".local/share/zsh"];
+  config.environment.persistence."/nix/persist".users.${username}.directories = [ ".local/share/zsh" ];
 }
diff --git a/overlays/aerc.nix b/overlays/aerc.nix
index ac48666..33ceb66 100644
--- a/overlays/aerc.nix
+++ b/overlays/aerc.nix
@@ -1,7 +1,7 @@
 final: prev: {
   aerc = prev.aerc.overrideAttrs (prevAttrs: rec {
-    buildInputs = prevAttrs.buildInputs ++ [final.gawk];
-    pythonPath = prevAttrs.pythonPath ++ [final.python3.pkgs.vobject];
+    buildInputs = prevAttrs.buildInputs ++ [ final.gawk ];
+    pythonPath = prevAttrs.pythonPath ++ [ final.python3.pkgs.vobject ];
     postFixup =
       prevAttrs.postFixup
       + ''
diff --git a/overlays/default.nix b/overlays/default.nix
index 575400f..13cb83c 100644
--- a/overlays/default.nix
+++ b/overlays/default.nix
@@ -1,10 +1,11 @@
-lib: let
+lib:
+let
   utils = import ../utils lib;
 in
-  lib.pipe ./. [
-    utils.nixFilesInWithName
-    (builtins.filter ({name, ...}: name != "default.nix"))
-    (lib.traceValFn (overlays: "Applying overlays ${builtins.toJSON (map (overlay: overlay.name) overlays)}"))
-    (builtins.map ({path, ...}: lib.traceVal path))
-    (map (path: import path))
-  ]
+lib.pipe ./. [
+  utils.nixFilesInWithName
+  (builtins.filter ({ name, ... }: name != "default.nix"))
+  (lib.traceValFn (overlays: "Applying overlays ${builtins.toJSON (map (overlay: overlay.name) overlays)}"))
+  (builtins.map ({ path, ... }: lib.traceVal path))
+  (map (path: import path))
+]
diff --git a/overlays/ligaturize.nix b/overlays/ligaturize.nix
index 223a1eb..c4fa777 100644
--- a/overlays/ligaturize.nix
+++ b/overlays/ligaturize.nix
@@ -1,6 +1,7 @@
-final: prev: let
+final: prev:
+let
   lib = prev.lib;
-  fonts = ["roboto-mono"];
+  fonts = [ "roboto-mono" ];
   ligaturizer = prev.fetchFromGitHub {
     owner = "ToxicFrog";
     repo = "Ligaturizer";
@@ -9,39 +10,39 @@
     fetchSubmodules = true;
   };
 in
-  lib.pipe fonts [
-    (builtins.map (name: {
-      inherit name;
-      value = prev.${name};
-    }))
-    builtins.listToAttrs
-    (builtins.mapAttrs (name: value:
-      value.overrideAttrs (
-        prevAttrs: {
-          outputHash = null;
-          outputHashMode = null;
-          outputHashAlgo = null;
-          nativeBuildInputs = (prevAttrs.nativeBuildInputs or []) ++ [prev.fontforge];
-          postFixup =
-            (prevAttrs.postFixup or "")
-            + ''
-              pushd ${ligaturizer}
-              mkdir -p $out/share/fonts/truetype
-              mkdir -p $out/share/fonts/opentype
-              find $out/share/fonts/truetype \
-                -name "*.ttf" \
-                -exec fontforge \
-                -lang py \
-                -script ligaturize.py {} \
-                --output-dir=$out/share/fonts/truetype \;
-              find $out/share/fonts/opentype \
-                -name "*.otf" \
-                -exec fontforge \
-                -lang py \
-                -script ligaturize.py {} \
-                --output-dir=$out/share/fonts/opentype \;
-              popd
-            '';
-        }
-      )))
-  ]
+lib.pipe fonts [
+  (builtins.map (name: {
+    inherit name;
+    value = prev.${name};
+  }))
+  builtins.listToAttrs
+  (builtins.mapAttrs (name: value:
+    value.overrideAttrs (
+      prevAttrs: {
+        outputHash = null;
+        outputHashMode = null;
+        outputHashAlgo = null;
+        nativeBuildInputs = (prevAttrs.nativeBuildInputs or [ ]) ++ [ prev.fontforge ];
+        postFixup =
+          (prevAttrs.postFixup or "")
+          + ''
+            pushd ${ligaturizer}
+            mkdir -p $out/share/fonts/truetype
+            mkdir -p $out/share/fonts/opentype
+            find $out/share/fonts/truetype \
+              -name "*.ttf" \
+              -exec fontforge \
+              -lang py \
+              -script ligaturize.py {} \
+              --output-dir=$out/share/fonts/truetype \;
+            find $out/share/fonts/opentype \
+              -name "*.otf" \
+              -exec fontforge \
+              -lang py \
+              -script ligaturize.py {} \
+              --output-dir=$out/share/fonts/opentype \;
+            popd
+          '';
+      }
+    )))
+]
diff --git a/overlays/packages.nix b/overlays/packages.nix
index 5c54246..44fd08e 100644
--- a/overlays/packages.nix
+++ b/overlays/packages.nix
@@ -1,4 +1,5 @@
-final: prev: let
+final: prev:
+let
   lib = prev.lib;
   utils = import ../utils lib;
 
@@ -7,18 +8,18 @@
     libsForQt5.qt5
   ];
 in
-  lib.pipe ../packages [
-    utils.nixFilesInWithName
-    (map ({
-      name,
-      path,
-    }: {
-      name = builtins.substring 0 ((builtins.stringLength name) - 4) name;
-      value = final.callPackage path (
-        builtins.intersectAttrs
+lib.pipe ../packages [
+  utils.nixFilesInWithName
+  (map ({ name
+        , path
+        ,
+        }: {
+    name = builtins.substring 0 ((builtins.stringLength name) - 4) name;
+    value = final.callPackage path (
+      builtins.intersectAttrs
         (builtins.functionArgs (import path))
-        (lib.fold lib.mergeAttrs {} extraAttrSets)
-      );
-    }))
-    builtins.listToAttrs
-  ]
+        (lib.fold lib.mergeAttrs { } extraAttrSets)
+    );
+  }))
+  builtins.listToAttrs
+]
diff --git a/overlays/patches.nix b/overlays/patches.nix
index cc7146b..1e46b2a 100644
--- a/overlays/patches.nix
+++ b/overlays/patches.nix
@@ -1,24 +1,25 @@
-final: prev: let
+final: prev:
+let
   lib = prev.lib;
   utils = import ../utils lib;
 in
-  lib.pipe ../patches [
-    utils.dirsInWithName
-    (builtins.map ({
-      name,
-      path,
-    }: {
-      inherit name;
-      value = prev.${name}.overrideAttrs (prevAttrs: {
-        patches =
-          (prevAttrs.patches or [])
-          ++ lib.traceValFn builtins.toJSON (lib.pipe path [
-            builtins.readDir
-            (lib.filterAttrs (_: type: type == "regular"))
-            builtins.attrNames
-            (builtins.map (name: "${path}/${name}"))
-          ]);
-      });
-    }))
-    builtins.listToAttrs
-  ]
+lib.pipe ../patches [
+  utils.dirsInWithName
+  (builtins.map ({ name
+                 , path
+                 ,
+                 }: {
+    inherit name;
+    value = prev.${name}.overrideAttrs (prevAttrs: {
+      patches =
+        (prevAttrs.patches or [ ])
+        ++ lib.traceValFn builtins.toJSON (lib.pipe path [
+          builtins.readDir
+          (lib.filterAttrs (_: type: type == "regular"))
+          builtins.attrNames
+          (builtins.map (name: "${path}/${name}"))
+        ]);
+    });
+  }))
+  builtins.listToAttrs
+]
diff --git a/packages/analitza.nix b/packages/analitza.nix
index 448ab59..48abd75 100644
--- a/packages/analitza.nix
+++ b/packages/analitza.nix
@@ -1,11 +1,12 @@
-{ stdenv,
-  #qt5-declarative,
-  libsForQt5,
-  extra-cmake-modules,
-  #kdoctools,
-  eigen,
-  #qt5-tools,
-  fetchurl,
+{ stdenv
+, #qt5-declarative,
+  libsForQt5
+, extra-cmake-modules
+, #kdoctools,
+  eigen
+, #qt5-tools,
+  fetchurl
+,
 }:
 stdenv.mkDerivation {
   pname = "analitza";
diff --git a/packages/csharp-ls.nix b/packages/csharp-ls.nix
index 44fcdc0..7f77764 100644
--- a/packages/csharp-ls.nix
+++ b/packages/csharp-ls.nix
@@ -1,44 +1,45 @@
-{
-  lib,
-  fetchFromGitHub,
-  buildDotnetPackage,
-  pkg-config,
-  dotnet-sdk,
-  dotnetPackages,
-  msbuild,
-}: let
+{ lib
+, fetchFromGitHub
+, buildDotnetPackage
+, pkg-config
+, dotnet-sdk
+, dotnetPackages
+, msbuild
+,
+}:
+let
   rev = "4fdada72e9a08a810da8e332258ae0dcc7e89cc7";
 in
-  buildDotnetPackage rec {
-    pname = "csharp-ls";
-    version = "1.0.0";
-    src = fetchFromGitHub {
-      owner = "razzmatazz";
-      repo = "csharp-language-server";
-      inherit rev;
-      sha256 = "sha256-+fc1mlNG9rxqQXaQXsGY228hz7zu2zaj3NlfDlNdn8U=";
-    };
-    projectFile = "src/csharp-language-server.sln";
-    buildInputs = [
-      msbuild
-      dotnet-sdk
-      dotnetPackages.NUnit
-      dotnetPackages.NUnitRunners
-    ];
-    nativeBuildInputs = [
-      pkg-config
-    ];
-    nugetDeps = ./csharp-ls/deps.nix;
-    buildPhase = ''
-      runHook preBuild
+buildDotnetPackage rec {
+  pname = "csharp-ls";
+  version = "1.0.0";
+  src = fetchFromGitHub {
+    owner = "razzmatazz";
+    repo = "csharp-language-server";
+    inherit rev;
+    sha256 = "sha256-+fc1mlNG9rxqQXaQXsGY228hz7zu2zaj3NlfDlNdn8U=";
+  };
+  projectFile = "src/csharp-language-server.sln";
+  buildInputs = [
+    msbuild
+    dotnet-sdk
+    dotnetPackages.NUnit
+    dotnetPackages.NUnitRunners
+  ];
+  nativeBuildInputs = [
+    pkg-config
+  ];
+  nugetDeps = ./csharp-ls/deps.nix;
+  buildPhase = ''
+    runHook preBuild
 
-      msbuild ${projectFile} /p:Configuration=Release
-      runHook postBuild
-    '';
-    meta = with lib; {
-      homepage = "https://github.com/razzmatazz/csharp-language-server";
-      description = "A csharp language server";
-      license = licenses.mit;
-      maintainer = [maintainers.minion3665];
-    };
-  }
+    msbuild ${projectFile} /p:Configuration=Release
+    runHook postBuild
+  '';
+  meta = with lib; {
+    homepage = "https://github.com/razzmatazz/csharp-language-server";
+    description = "A csharp language server";
+    license = licenses.mit;
+    maintainer = [ maintainers.minion3665 ];
+  };
+}
diff --git a/packages/csharp-ls/deps.nix b/packages/csharp-ls/deps.nix
index 9734267..8d992de 100644
--- a/packages/csharp-ls/deps.nix
+++ b/packages/csharp-ls/deps.nix
@@ -1,4 +1,4 @@
-{fetchNuGet}: [
+{ fetchNuGet }: [
   (fetchNuGet {
     pname = "Argu";
     version = "6.1.1";
diff --git a/packages/figma.nix b/packages/figma.nix
index eb96260..39926c2 100644
--- a/packages/figma.nix
+++ b/packages/figma.nix
@@ -1,15 +1,16 @@
-{
-  pkgs,
-  lib,
-  stdenv,
-  unzip,
-  fetchurl,
-  makeDesktopItem,
-  buildFHSUserEnv,
-  # Specify any font packages to include
+{ pkgs
+, lib
+, stdenv
+, unzip
+, fetchurl
+, makeDesktopItem
+, buildFHSUserEnv
+, # Specify any font packages to include
   # e.g. figma.override { fonts = [ noto-fonts fira-code ]; }
-  fonts ? [],
-}: let
+  fonts ? [ ]
+,
+}:
+let
   version = "0.10.0";
   # Figma executable.
   # Currently won't run outside of FHS even with autopatching - needs help.
@@ -20,7 +21,7 @@
       url = "https://github.com/Figma-Linux/figma-linux/releases/download/v${version}/figma-linux_${version}_linux_amd64.zip";
       sha256 = "sha256-1jdaa/oZu5io/sHHkNzdrCgWWfqW0AMqUGx6amJJpyU=";
     };
-    buildInputs = [unzip];
+    buildInputs = [ unzip ];
     unpackPhase = ''
       runHook preUnpack
       mkdir output
@@ -63,9 +64,9 @@
       genericName = "Vector Graphics Designer";
       comment = "Unofficial desktop application for linux";
       type = "Application";
-      categories = ["Graphics"];
-      mimeTypes = ["application/figma" "x-scheme-handler/figma"];
-      extraConfig = {StartupWMClass = "figma-linux";};
+      categories = [ "Graphics" ];
+      mimeTypes = [ "application/figma" "x-scheme-handler/figma" ];
+      extraConfig = { StartupWMClass = "figma-linux"; };
     };
   };
   figma-fhs = buildFHSUserEnv {
@@ -115,25 +116,25 @@
     runScript = "figma";
   };
 in
-  stdenv.mkDerivation {
-    pname = "figma";
-    inherit version;
-    src = builtins.path {path = ./.;};
-    nativeBuildInputs = [figma-fhs];
-    installPhase = ''
-      # Add binary link
-      mkdir -p $out/bin
-      cp -r ${figma-fhs}/bin/figma-fhs $out/bin/figma
+stdenv.mkDerivation {
+  pname = "figma";
+  inherit version;
+  src = builtins.path { path = ./.; };
+  nativeBuildInputs = [ figma-fhs ];
+  installPhase = ''
+    # Add binary link
+    mkdir -p $out/bin
+    cp -r ${figma-fhs}/bin/figma-fhs $out/bin/figma
 
-      # Link icons + desktop items
-      mkdir -p $out/share
-      cp -r ${figma-exec}/share/. $out/share
-    '';
-    meta = with lib; {
-      description = "unofficial Electron-based Figma desktop app for Linux";
-      homepage = "https://github.com/Figma-Linux/figma-linux";
-      # While the container application is GPL-2.0,
-      # Figma itself (running in the application) is nonFree.
-      license = licenses.unfree;
-    };
-  }
+    # Link icons + desktop items
+    mkdir -p $out/share
+    cp -r ${figma-exec}/share/. $out/share
+  '';
+  meta = with lib; {
+    description = "unofficial Electron-based Figma desktop app for Linux";
+    homepage = "https://github.com/Figma-Linux/figma-linux";
+    # While the container application is GPL-2.0,
+    # Figma itself (running in the application) is nonFree.
+    license = licenses.unfree;
+  };
+}
diff --git a/packages/git-conflict-nvim.nix b/packages/git-conflict-nvim.nix
index d568470..d765e54 100644
--- a/packages/git-conflict-nvim.nix
+++ b/packages/git-conflict-nvim.nix
@@ -1,6 +1,6 @@
-{
-  vimUtils,
-  fetchFromGitHub,
+{ vimUtils
+, fetchFromGitHub
+,
 }:
 vimUtils.buildVimPlugin {
   name = "git-conflict-nvim";
diff --git a/packages/kalgebra.nix b/packages/kalgebra.nix
index 43d2190..ba492ad 100644
--- a/packages/kalgebra.nix
+++ b/packages/kalgebra.nix
@@ -1,30 +1,29 @@
-{
-  pkgs
+{ pkgs
 }: with pkgs; let
   hash = "e82b59795985540062f4c00e582dc42e8b8358e8";
 in
-  stdenv.mkDerivation rec {
-    version = builtins.substring 0 7 hash;
-    src = builtins.fetchGit {
-      url = "https://github.com/KDE/kalgebra";
-      rev = hash;
-    };
-    name = "kalgebra-${version}";
-    nativeBuildInputs = [extra-cmake-modules qt5.wrapQtAppsHook];
-    buildInputs = with qt5; with libsForQt5; [
-      qtbase
-      qtquickcontrols
-      kconfig
-      kcoreaddons
-      kcrash
-      kconfigwidgets
-      kdbusaddons
-      kdoctools
-      ktextwidgets
-      kxmlgui
-      kdeApplications.libkdegames
-      kcompletion
-      analitza
-      kirigami2
-    ];
-  }
+stdenv.mkDerivation rec {
+  version = builtins.substring 0 7 hash;
+  src = builtins.fetchGit {
+    url = "https://github.com/KDE/kalgebra";
+    rev = hash;
+  };
+  name = "kalgebra-${version}";
+  nativeBuildInputs = [ extra-cmake-modules qt5.wrapQtAppsHook ];
+  buildInputs = with qt5; with libsForQt5; [
+    qtbase
+    qtquickcontrols
+    kconfig
+    kcoreaddons
+    kcrash
+    kconfigwidgets
+    kdbusaddons
+    kdoctools
+    ktextwidgets
+    kxmlgui
+    kdeApplications.libkdegames
+    kcompletion
+    analitza
+    kirigami2
+  ];
+}
diff --git a/packages/monocraft.nix b/packages/monocraft.nix
index 49278c9..c591e1c 100644
--- a/packages/monocraft.nix
+++ b/packages/monocraft.nix
@@ -1,7 +1,7 @@
-{
-  lib,
-  fetchFromGitHub,
-  stdenv,
+{ lib
+, fetchFromGitHub
+, stdenv
+,
 }:
 stdenv.mkDerivation rec {
   pname = "monocraft";
@@ -25,6 +25,6 @@
     description = "A programming font based on the typeface used in Minecraft";
     homepage = "https://github.com/IdreesInc/Monocraft";
     license = licenses.ofl;
-    maintainers = with maintainers; [minion3665];
+    maintainers = with maintainers; [ minion3665 ];
   };
 }
diff --git a/packages/nerdfonts-glyphs.nix b/packages/nerdfonts-glyphs.nix
index f527d64..a5491e8 100644
--- a/packages/nerdfonts-glyphs.nix
+++ b/packages/nerdfonts-glyphs.nix
@@ -1,7 +1,7 @@
-{
-  lib,
-  fetchFromGitHub,
-  stdenv,
+{ lib
+, fetchFromGitHub
+, stdenv
+,
 }:
 stdenv.mkDerivation rec {
   pname = "nerdfonts-glyphs";
@@ -32,6 +32,6 @@
     description = "A nerd-fonts copy that only includes the glyphs (rather than patching)";
     homepage = "https://nerdfonts.com/";
     license = licenses.free;
-    maintainers = with maintainers; [minion3665];
+    maintainers = with maintainers; [ minion3665 ];
   };
 }
diff --git a/packages/nvim-scrollbar.nix b/packages/nvim-scrollbar.nix
index 2bd84f2..72ec46b 100644
--- a/packages/nvim-scrollbar.nix
+++ b/packages/nvim-scrollbar.nix
@@ -1,6 +1,6 @@
-{
-  vimUtils,
-  fetchFromGitHub,
+{ vimUtils
+, fetchFromGitHub
+,
 }:
 vimUtils.buildVimPlugin {
   name = "nvim-scrollbar";
diff --git a/packages/octicons.nix b/packages/octicons.nix
index 805425b..d35fbba 100644
--- a/packages/octicons.nix
+++ b/packages/octicons.nix
@@ -1,11 +1,12 @@
-{
-  lib,
-  fetchFromGitHub,
-  stdenv,
-  fontforge,
-  writeText,
-  useNerdfontsOffset ? true,
-}: let
+{ lib
+, fetchFromGitHub
+, stdenv
+, fontforge
+, writeText
+, useNerdfontsOffset ? true
+,
+}:
+let
   pname = "octicons";
   version = "4.4.0";
   src = fetchFromGitHub {
@@ -56,27 +57,27 @@
     font.generate("${pname}.ttf")
   '';
 in
-  stdenv.mkDerivation rec {
-    inherit version src pname;
+stdenv.mkDerivation rec {
+  inherit version src pname;
 
-    buildPhase = ''
-      fontforge \
-        -lang py \
-        -script ${script} \;
-    '';
+  buildPhase = ''
+    fontforge \
+      -lang py \
+      -script ${script} \;
+  '';
 
-    installPhase = ''
-      mkdir -p $out/bin $out/share/fonts/truetype
-      mv ${pname}.ttf $out/share/fonts/truetype
-      echo $out
-    '';
+  installPhase = ''
+    mkdir -p $out/bin $out/share/fonts/truetype
+    mv ${pname}.ttf $out/share/fonts/truetype
+    echo $out
+  '';
 
-    nativeBuildInputs = [fontforge];
+  nativeBuildInputs = [ fontforge ];
 
-    meta = with lib; {
-      description = "GitHub's Octicons icon pack";
-      homepage = "https://github.com/primer/octicons";
-      license = licenses.mit;
-      maintainers = with maintainers; [minion3665];
-    };
-  }
+  meta = with lib; {
+    description = "GitHub's Octicons icon pack";
+    homepage = "https://github.com/primer/octicons";
+    license = licenses.mit;
+    maintainers = with maintainers; [ minion3665 ];
+  };
+}
diff --git a/packages/prismlauncher.nix b/packages/prismlauncher.nix
index 2cabbaa..3ad5ceb 100644
--- a/packages/prismlauncher.nix
+++ b/packages/prismlauncher.nix
@@ -1,27 +1,28 @@
-{
-  lib,
-  stdenv,
-  fetchFromGitHub,
-  cmake,
-  jdk8,
-  jdk,
-  zlib,
-  file,
-  wrapQtAppsHook,
-  xorg,
-  libpulseaudio,
-  qtbase,
-  libGL,
-  quazip,
-  glfw,
-  openal,
-  msaClientID ? "",
-  jdks ? [jdk jdk8],
-  extra-cmake-modules,
-  tomlplusplus,
-  ghc_filesystem,
-  libnbtplusplus,
-}: let
+{ lib
+, stdenv
+, fetchFromGitHub
+, cmake
+, jdk8
+, jdk
+, zlib
+, file
+, wrapQtAppsHook
+, xorg
+, libpulseaudio
+, qtbase
+, libGL
+, quazip
+, glfw
+, openal
+, msaClientID ? ""
+, jdks ? [ jdk jdk8 ]
+, extra-cmake-modules
+, tomlplusplus
+, ghc_filesystem
+, libnbtplusplus
+,
+}:
+let
   rev = "243600b75babc636bdd1ac0dc8fd5fa4a2db1a0c";
   sha256 = "sha256-cDwa6NeZew+MubtRmUViLA8gUaoH3AMxD9PdQcgSgSU=";
 
@@ -32,33 +33,34 @@
     sha256 = "sha256-4PHKPbWIWAy9ym25M4SnllTkrqnR+g/0AOqyMBZcdX4=";
   };
 in
-  stdenv.mkDerivation {
-    pname = "prismlauncher";
-    version = builtins.substring 0 7 rev;
+stdenv.mkDerivation {
+  pname = "prismlauncher";
+  version = builtins.substring 0 7 rev;
 
-    src = fetchFromGitHub {
-      owner = "PlaceholderMC";
-      repo = "PrismLauncher";
-      inherit rev sha256;
-    };
+  src = fetchFromGitHub {
+    owner = "PlaceholderMC";
+    repo = "PrismLauncher";
+    inherit rev sha256;
+  };
 
-    postUnpack = ''
-      rm -rf source/libraries/libnbtplusplus
-      mkdir source/libraries/libnbtplusplus
-      cp -a ${libnbtplusplus}/* source/libraries/libnbtplusplus
-      chmod -R a+r+w source/libraries/libnbtplusplus
-      chown -R $USER: source/libraries/libnbtplusplus
-      ls source/libraries/libnbtplusplus/*
-    '';
+  postUnpack = ''
+    rm -rf source/libraries/libnbtplusplus
+    mkdir source/libraries/libnbtplusplus
+    cp -a ${libnbtplusplus}/* source/libraries/libnbtplusplus
+    chmod -R a+r+w source/libraries/libnbtplusplus
+    chown -R $USER: source/libraries/libnbtplusplus
+    ls source/libraries/libnbtplusplus/*
+  '';
 
-    nativeBuildInputs = [extra-cmake-modules tomlplusplus ghc_filesystem cmake file jdk wrapQtAppsHook];
-    buildInputs = [qtbase zlib quazip];
+  nativeBuildInputs = [ extra-cmake-modules tomlplusplus ghc_filesystem cmake file jdk wrapQtAppsHook ];
+  buildInputs = [ qtbase zlib quazip ];
 
-    cmakeFlags = lib.optionals (msaClientID != "") ["-DLauncher_MSA_CLIENT_ID=${msaClientID}"];
+  cmakeFlags = lib.optionals (msaClientID != "") [ "-DLauncher_MSA_CLIENT_ID=${msaClientID}" ];
 
-    dontWrapQtApps = true;
+  dontWrapQtApps = true;
 
-    postInstall = let
+  postInstall =
+    let
       libpath = with xorg;
         lib.makeLibraryPath [
           libX11
@@ -72,7 +74,8 @@
           openal
           stdenv.cc.cc.lib
         ];
-    in ''
+    in
+    ''
       # xorg.xrandr needed for LWJGL [2.9.2, 3) https://github.com/LWJGL/lwjgl/issues/128
       wrapQtApp $out/bin/prismlauncher \
         --set LD_LIBRARY_PATH /run/opengl-driver/lib:${libpath} \
@@ -80,19 +83,19 @@
         --prefix PATH : ${lib.makeBinPath [xorg.xrandr]}
     '';
 
-    meta = with lib; {
-      homepage = "https://github.com/PlaceholderMC/PrismLauncher/";
-      description = "A free, open source launcher for Minecraft";
-      longDescription = ''
-        Allows you to have multiple, separate instances of Minecraft (each with
-        their own mods, texture packs, saves, etc) and helps you manage them and
-        their associated options with a simple interface.
-      '';
-      platforms = platforms.linux;
-      /*
+  meta = with lib; {
+    homepage = "https://github.com/PlaceholderMC/PrismLauncher/";
+    description = "A free, open source launcher for Minecraft";
+    longDescription = ''
+      Allows you to have multiple, separate instances of Minecraft (each with
+      their own mods, texture packs, saves, etc) and helps you manage them and
+      their associated options with a simple interface.
+    '';
+    platforms = platforms.linux;
+    /*
       changelog = "https://github.com/PlaceholderMC/PrismLauncher/releases/tag/${version}";
       */
-      license = licenses.gpl3Only;
-      maintainers = with maintainers; [minion3665];
-    };
-  }
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ minion3665 ];
+  };
+}
diff --git a/packages/vim-ctrlspace.nix b/packages/vim-ctrlspace.nix
index efda8fb..7e03353 100644
--- a/packages/vim-ctrlspace.nix
+++ b/packages/vim-ctrlspace.nix
@@ -1,7 +1,7 @@
-{
-  vimUtils,
-  fetchFromGitHub,
-  lib,
+{ vimUtils
+, fetchFromGitHub
+, lib
+,
 }:
 vimUtils.buildVimPlugin {
   name = "vim-ctrlspace";
diff --git a/packages/waycorner.nix b/packages/waycorner.nix
index fa0851e..dc54aca 100644
--- a/packages/waycorner.nix
+++ b/packages/waycorner.nix
@@ -1,13 +1,13 @@
-{
-  rustPlatform,
-  fetchFromGitHub,
-  cmake,
-  pkg-config,
-  freetype,
-  fontconfig,
-  expat,
-  wayland,
-  system,
+{ rustPlatform
+, fetchFromGitHub
+, cmake
+, pkg-config
+, freetype
+, fontconfig
+, expat
+, wayland
+, system
+,
 }:
 rustPlatform.buildRustPackage rec {
   pname = "waycorner";
diff --git a/packages/wiki-vim.nix b/packages/wiki-vim.nix
index b2fb14e..96b1c05 100644
--- a/packages/wiki-vim.nix
+++ b/packages/wiki-vim.nix
@@ -1,6 +1,6 @@
-{
-  vimUtils,
-  fetchFromGitHub,
+{ vimUtils
+, fetchFromGitHub
+,
 }:
 vimUtils.buildVimPlugin {
   name = "wiki.vim";
diff --git a/switching/flake.nix b/switching/flake.nix
index 49806fd..35ee9d9 100644
--- a/switching/flake.nix
+++ b/switching/flake.nix
@@ -3,17 +3,20 @@
   inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
   inputs.flake-utils.url = "github:numtide/flake-utils";
 
-  outputs = {
-    self,
-    nixpkgs,
-    flake-utils,
-  }:
-    flake-utils.lib.eachDefaultSystem (system: let
+  outputs =
+    { self
+    , nixpkgs
+    , flake-utils
+    ,
+    }:
+    flake-utils.lib.eachDefaultSystem (system:
+    let
       pkgs = nixpkgs.legacyPackages.${system};
-    in {
+    in
+    {
       devShell = pkgs.mkShell {
-        nativeBuildInputs = with pkgs; [bashInteractive ncurses];
-        buildInputs = [];
+        nativeBuildInputs = with pkgs; [ bashInteractive ncurses ];
+        buildInputs = [ ];
       };
     });
 }
diff --git a/utils/default.nix b/utils/default.nix
index 67018fc..eb80965 100644
--- a/utils/default.nix
+++ b/utils/default.nix
@@ -1,10 +1,10 @@
 lib:
 lib.pipe ./. [
   (import ./nixFilesInWithName.nix lib)
-  (builtins.map ({
-    name,
-    path,
-  }: {
+  (builtins.map ({ name
+                 , path
+                 ,
+                 }: {
     name = lib.removeSuffix ".nix" name;
     value = import path lib;
   }))
diff --git a/utils/dirsInWithName.nix b/utils/dirsInWithName.nix
index 3da4017..81f30b1 100644
--- a/utils/dirsInWithName.nix
+++ b/utils/dirsInWithName.nix
@@ -1,6 +1,8 @@
 # Modified from http://chriswarbo.net/projects/nixos/useful_hacks.html
 lib: dir:
-map (name: {
-  inherit name;
-  path = dir + "/${name}";
-}) (lib.attrNames (lib.filterAttrs (_: type: type == "directory") (builtins.readDir dir)))
+map
+  (name: {
+    inherit name;
+    path = dir + "/${name}";
+  })
+  (lib.attrNames (lib.filterAttrs (_: type: type == "directory") (builtins.readDir dir)))
diff --git a/utils/interpretNonstandardModule.nix b/utils/interpretNonstandardModule.nix
index da98966..1a606a5 100644
--- a/utils/interpretNonstandardModule.nix
+++ b/utils/interpretNonstandardModule.nix
@@ -3,96 +3,106 @@
 # This function takes a list of modules, as well as arguments to import them
 # with, and returns a list of modules, each with the standard NixOS module
 # properties as well as with custom properties as described in /README.md
-lib: transformArgs: modules: args @ {pkgs, ...}: let
-  resolver = module: let
-    importedModule =
-      if builtins.typeOf module == "path"
-      then import module
-      else module;
-    resolvedModule =
-      if builtins.typeOf importedModule == "lambda"
-      then
-        importedModule
-        (transformArgs args)
-      else importedModule;
-    moduleName =
-      if builtins.typeOf module == "lambda"
-      then "<AnonFunction>"
-      else if builtins.typeOf module == "path"
-      then builtins.toString module
-      else builtins.toJSON module;
-  in
-    lib.warnIfNot
-    ((lib.pipe resolvedModule [
-        builtins.attrNames
-        (lib.subtractLists ["home" "config" "imports" "options" "traces"])
-      ])
-      == [])
-    "Module ${moduleName} had attribute names ${builtins.toJSON (builtins.attrNames resolvedModule)} but only home, config, imports and options are resolved"
-    [
-      {
-        config = lib.recursiveUpdate (resolvedModule.config or {}) {
-          home-manager.users."${args.username}".imports =
-            (resolvedModule.config.home-manager.users."${args.username}".imports or [])
-            ++ [resolvedModule.home or {}];
-        };
-        imports = resolvedModule.imports or [];
-        options = resolvedModule.options or {};
-      }
-    ]
-    ++ (builtins.map (trace: let
-      splitTrace = lib.splitString "." trace;
-      traceHead = builtins.head splitTrace;
-      traceTail = builtins.tail splitTrace;
-      resolvedTrace =
-        (
-          if traceHead == "home"
-          then ["home-manager" "users" args.username]
-          else lib.errorIfNot (traceHead == "config") []
-        )
-        ++ traceTail;
+lib: transformArgs: modules: args @ { pkgs, ... }:
+let
+  resolver = module:
+    let
+      importedModule =
+        if builtins.typeOf module == "path"
+        then import module
+        else module;
+      resolvedModule =
+        if builtins.typeOf importedModule == "lambda"
+        then
+          importedModule
+            (transformArgs args)
+        else importedModule;
+      moduleName =
+        if builtins.typeOf module == "lambda"
+        then "<AnonFunction>"
+        else if builtins.typeOf module == "path"
+        then builtins.toString module
+        else builtins.toJSON module;
     in
-      {config, ...}: (builtins.seq (
-        lib.pipe resolvedTrace [
-          (lib.foldl ({
-            value,
-            error,
-          }: key:
-            if builtins.hasAttr key value
-            then {
-              value = value.${key};
-              inherit error;
-            }
-            else {
-              value = {};
-              error = true;
-            }) {
-            value = {};
-            error = false;
-          })
-          (data: lib.warnIf data.error "trace@${moduleName}/${trace} is invalid; the key does not exist" data)
-          ({
-            value,
-            error,
-          }: {
-            value = builtins.toJSON value;
-            inherit error;
-          })
-          ({
-            value,
-            error,
-          }: {
-            value = "trace@${moduleName}/${trace}: ${value}";
-            inherit error;
-          })
-          ({
-            value,
-            error,
-          }:
-            lib.traceIf (!error) value null)
-        ]
-      ) {})) (resolvedModule.traces or []));
-in {
+    lib.warnIfNot
+      ((lib.pipe resolvedModule [
+        builtins.attrNames
+        (lib.subtractLists [ "home" "config" "imports" "options" "traces" ])
+      ])
+      == [ ])
+      "Module ${moduleName} had attribute names ${builtins.toJSON (builtins.attrNames resolvedModule)} but only home, config, imports and options are resolved"
+      [
+        {
+          config = lib.recursiveUpdate (resolvedModule.config or { }) {
+            home-manager.users."${args.username}".imports =
+              (resolvedModule.config.home-manager.users."${args.username}".imports or [ ])
+              ++ [ resolvedModule.home or { } ];
+          };
+          imports = resolvedModule.imports or [ ];
+          options = resolvedModule.options or { };
+        }
+      ]
+    ++ (builtins.map
+      (trace:
+        let
+          splitTrace = lib.splitString "." trace;
+          traceHead = builtins.head splitTrace;
+          traceTail = builtins.tail splitTrace;
+          resolvedTrace =
+            (
+              if traceHead == "home"
+              then [ "home-manager" "users" args.username ]
+              else lib.errorIfNot (traceHead == "config") [ ]
+            )
+            ++ traceTail;
+        in
+        { config, ... }: (builtins.seq
+          (
+            lib.pipe resolvedTrace [
+              (lib.foldl
+                ({ value
+                 , error
+                 ,
+                 }: key:
+                  if builtins.hasAttr key value
+                  then {
+                    value = value.${key};
+                    inherit error;
+                  }
+                  else {
+                    value = { };
+                    error = true;
+                  })
+                {
+                  value = { };
+                  error = false;
+                })
+              (data: lib.warnIf data.error "trace@${moduleName}/${trace} is invalid; the key does not exist" data)
+              ({ value
+               , error
+               ,
+               }: {
+                value = builtins.toJSON value;
+                inherit error;
+              })
+              ({ value
+               , error
+               ,
+               }: {
+                value = "trace@${moduleName}/${trace}: ${value}";
+                inherit error;
+              })
+              ({ value
+               , error
+               ,
+               }:
+                lib.traceIf (!error) value null)
+            ]
+          )
+          { }))
+      (resolvedModule.traces or [ ]));
+in
+{
   imports = (
     if builtins.typeOf modules == "list"
     then builtins.concatLists (builtins.map resolver modules)
diff --git a/utils/nixFilesInWithName.nix b/utils/nixFilesInWithName.nix
index 7c56abc..760b7cf 100644
--- a/utils/nixFilesInWithName.nix
+++ b/utils/nixFilesInWithName.nix
@@ -1,6 +1,8 @@
 # Modified from http://chriswarbo.net/projects/nixos/useful_hacks.html
 lib: dir:
-map (name: {
-  inherit name;
-  path = dir + "/${name}";
-}) (lib.attrNames (lib.filterAttrs (name: type: lib.hasSuffix ".nix" name && type == "regular") (builtins.readDir dir)))
+map
+  (name: {
+    inherit name;
+    path = dir + "/${name}";
+  })
+  (lib.attrNames (lib.filterAttrs (name: type: lib.hasSuffix ".nix" name && type == "regular") (builtins.readDir dir)))