about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--flake.lock96
-rw-r--r--flake.nix12
-rw-r--r--lib/default.nix16
-rw-r--r--lib/dns.nix4
-rw-r--r--lib/my.nix2
-rw-r--r--lib/packages.nix18
-rw-r--r--modules/common/nix.nix41
-rw-r--r--modules/firefox/addons.nix18
-rw-r--r--modules/firefox/default.nix56
-rw-r--r--modules/git/default.nix5
-rw-r--r--modules/nsd.nix3
-rw-r--r--modules/shadowsocks.nix2
-rw-r--r--modules/vim.nix4
-rw-r--r--overlays.nix8
14 files changed, 136 insertions, 149 deletions
diff --git a/flake.lock b/flake.lock
index efa9f12..ad38a68 100644
--- a/flake.lock
+++ b/flake.lock
@@ -150,11 +150,11 @@
     "base16-helix": {
       "flake": false,
       "locked": {
-        "lastModified": 1696727917,
-        "narHash": "sha256-FVrbPk+NtMra0jtlC5oxyNchbm8FosmvXIatkRbYy1g=",
+        "lastModified": 1720809814,
+        "narHash": "sha256-numb3xigRGnr/deF7wdjBwVg7fpbTH7reFDkJ75AJkY=",
         "owner": "tinted-theming",
         "repo": "base16-helix",
-        "rev": "dbe1480d99fe80f08df7970e471fac24c05f2ddb",
+        "rev": "34f41987bec14c0f3f6b2155c19787b1f6489625",
         "type": "github"
       },
       "original": {
@@ -278,11 +278,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1720402389,
-        "narHash": "sha256-zJv6euDOrJWMHBhxfp/ay+Dvjwpe8YtMuEI5b09bxmo=",
+        "lastModified": 1721417620,
+        "narHash": "sha256-6q9b1h8fI3hXg2DG6/vrKWCeG8c5Wj2Kvv22RCgedzg=",
         "owner": "nix-community",
         "repo": "disko",
-        "rev": "f1a00e7f55dc266ef286cc6fc8458fa2b5ca2414",
+        "rev": "bec6e3cde912b8acb915fecdc509eda7c973fb42",
         "type": "github"
       },
       "original": {
@@ -395,11 +395,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1720524665,
-        "narHash": "sha256-ni/87oHPZm6Gv0ECYxr1f6uxB0UKBWJ6HvS7lwLU6oY=",
+        "lastModified": 1721042469,
+        "narHash": "sha256-6FPUl7HVtvRHCCBQne7Ylp4p+dpP3P/OYuzjztZ4s70=",
         "owner": "cachix",
         "repo": "git-hooks.nix",
-        "rev": "8d6a17d0cdf411c55f12602624df6368ad86fac1",
+        "rev": "f451c19376071a90d8c58ab1a953c6e9840527fd",
         "type": "github"
       },
       "original": {
@@ -453,11 +453,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1720470846,
-        "narHash": "sha256-7ftA4Bv5KfH4QdTRxqe8/Hz2YTKo+7IQ9n7vbNWgv28=",
+        "lastModified": 1721534365,
+        "narHash": "sha256-XpZOkaSJKdOsz1wU6JfO59Rx2fqtcarQ0y6ndIOKNpI=",
         "owner": "nix-community",
         "repo": "home-manager",
-        "rev": "2fb5c1e0a17bc6059fa09dc411a43d75f35bb192",
+        "rev": "635563f245309ef5320f80c7ebcb89b2398d2949",
         "type": "github"
       },
       "original": {
@@ -509,11 +509,11 @@
         "nixpkgs-24_05": "nixpkgs-24_05"
       },
       "locked": {
-        "lastModified": 1718697807,
-        "narHash": "sha256-Enla61WFisytTYbWygPynEbu8vozjeGc6Obkj2GRj7o=",
+        "lastModified": 1721121314,
+        "narHash": "sha256-zwc7YXga/1ppaZMWFreZykXtFwBgXodxUZiUx969r+g=",
         "owner": "simple-nixos-mailserver",
         "repo": "nixos-mailserver",
-        "rev": "290a995de5c3d3f08468fa548f0d55ab2efc7b6b",
+        "rev": "059b50b2e729729ea00c6831124d3837c494f3d5",
         "type": "gitlab"
       },
       "original": {
@@ -535,11 +535,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1720574857,
-        "narHash": "sha256-d54eAlQJ+8qJIeiBxjGT63qNgOhhx8G8h4UzmUUWXTU=",
+        "lastModified": 1721525992,
+        "narHash": "sha256-u1PjXUmaNvDep7KybHfUDBjv/6o6I4gPnAg08wfDE3M=",
         "owner": "Infinidoge",
         "repo": "nix-minecraft",
-        "rev": "94356ef03990fb5b8a3015a13df397ceb612ddc4",
+        "rev": "99f81e27c85f67177d89d129cb07529185281fbb",
         "type": "github"
       },
       "original": {
@@ -555,11 +555,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1720334033,
-        "narHash": "sha256-X9pEvvHTVWJphhbUYqXvlLedOndNqGB7rvhSvL2CIgU=",
+        "lastModified": 1721531260,
+        "narHash": "sha256-O72uxk4gYFQDwNkoBioyrR3GK9EReZmexCStBaORMW8=",
         "owner": "nix-community",
         "repo": "nix-index-database",
-        "rev": "685e40e1348007d2cf76747a201bab43d86b38cb",
+        "rev": "b6db9fd8dc59bb2ccb403f76d16ba8bbc1d5263d",
         "type": "github"
       },
       "original": {
@@ -582,11 +582,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1715634843,
-        "narHash": "sha256-YrECYhEXY7g8Ji5luq8mdRaLRGiwTPCSDEeVP91DyDY=",
+        "lastModified": 1721160643,
+        "narHash": "sha256-ZkjJnwgDUkjzgySZv9GjKnDsDmNJVkU2u2pLD4a1QKA=",
         "owner": "oddlama",
         "repo": "nix-topology",
-        "rev": "9ed5c7b5c5cd5bed9e204e8b9d69f4be1954abd3",
+        "rev": "fe9ace7f40a63e3eb9b39a20a1032834e090d806",
         "type": "github"
       },
       "original": {
@@ -597,11 +597,11 @@
     },
     "nixos-hardware": {
       "locked": {
-        "lastModified": 1720515935,
-        "narHash": "sha256-8b+fzR4W2hI5axwB+4nBwoA15awPKkck4ghhCt8v39M=",
+        "lastModified": 1721413321,
+        "narHash": "sha256-0GdiQScDceUrVGbxYpV819LHesK3szHOhJ09e6sgES4=",
         "owner": "NixOS",
         "repo": "nixos-hardware",
-        "rev": "a111ce6b537df12a39874aa9672caa87f8677eda",
+        "rev": "ab165a8a6cd12781d76fe9cbccb9e975d0fb634f",
         "type": "github"
       },
       "original": {
@@ -612,11 +612,11 @@
     },
     "nixpkgs": {
       "locked": {
-        "lastModified": 1720571246,
-        "narHash": "sha256-nkUXwunTck+hNMt2wZuYRN+jf2ySRjKTzI0fo5TDH78=",
+        "lastModified": 1721497942,
+        "narHash": "sha256-EDPL9qJfklXoowl3nEBmjDIqcvXKUZInt5n6CCc1Hn4=",
         "owner": "NixOS",
         "repo": "nixpkgs",
-        "rev": "16e401f01842c5bb2499e78c1fe227f939c0c474",
+        "rev": "d43f0636fc9492e83be8bbb41f9595d7a87106b8",
         "type": "github"
       },
       "original": {
@@ -643,11 +643,11 @@
     },
     "nixpkgs-master": {
       "locked": {
-        "lastModified": 1720604673,
-        "narHash": "sha256-fwKpmoe5Jrvz3zp/URGpE+0/X1LgroNxqWOon43ocwk=",
+        "lastModified": 1721571131,
+        "narHash": "sha256-zqNz0lmvMFCWmGWAeuId1sR1eAWbb7dvmKtIBowCFw0=",
         "owner": "NixOS",
         "repo": "nixpkgs",
-        "rev": "9433aae45a5bf9cafe48749d0b208d07fa72dcd9",
+        "rev": "1d3f9997f6c33dd53f492a69e72298782e22e333",
         "type": "github"
       },
       "original": {
@@ -659,11 +659,11 @@
     },
     "nixpkgs-stable": {
       "locked": {
-        "lastModified": 1720599075,
-        "narHash": "sha256-0pS6J6Jr7PEkjxkGolrWvilDIlgcEnMHAG9vxPuBeoE=",
+        "lastModified": 1721560568,
+        "narHash": "sha256-L61BXz7n/yNzOeZ3FqlnUmxj4145JOVeq9fvQTQzbNM=",
         "owner": "NixOS",
         "repo": "nixpkgs",
-        "rev": "f694c70847dff1a24c29d2ff6b90966fe5619729",
+        "rev": "be3ca229c85e978880babdeda9748b14e6aa008f",
         "type": "github"
       },
       "original": {
@@ -692,11 +692,11 @@
     "nmap-vulscan": {
       "flake": false,
       "locked": {
-        "lastModified": 1690132505,
-        "narHash": "sha256-V5KX5EmSAMjV/YONykpLyf2QWZpVy8meRUeW3PvRjNQ=",
+        "lastModified": 1721191969,
+        "narHash": "sha256-98UL6N8l/C/UJebzuHJQPxitVya55a0mcwTR4dKII6E=",
         "owner": "scipag",
         "repo": "vulscan",
-        "rev": "0c793c490455e7907a7c5cbaf3f7210e80d2ee57",
+        "rev": "2640d62400e9953fb9a33e6033dc59a9dc9606ba",
         "type": "github"
       },
       "original": {
@@ -741,11 +741,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1720400448,
-        "narHash": "sha256-v7JVJ8H1PyH7/8EU72mz7wzxJ1OLE/h3NCqQyZ6ONjs=",
+        "lastModified": 1721263500,
+        "narHash": "sha256-6l0+MciXkktANuZ+Rwc6BZJxtMi7jHZRiSnzG+xpwyk=",
         "owner": "nix-community",
         "repo": "srvos",
-        "rev": "21a3259985e3cddc455f64ad66d4a825b39934ad",
+        "rev": "ef4f2248e1bbd84a0dd269ab31b9927d9c0bf2e6",
         "type": "github"
       },
       "original": {
@@ -775,11 +775,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1719525570,
-        "narHash": "sha256-xSO/H67GAHEW0siD2PHoO/e97MbROL3r3s5SpF6A6Dc=",
+        "lastModified": 1721478802,
+        "narHash": "sha256-+WMQs0fMAmpWPsKNgIFQoKLtvS4qtTj+mC++cD1May4=",
         "owner": "danth",
         "repo": "stylix",
-        "rev": "1ff9d37d27377bfe8994c24a8d6c6c1734ffa116",
+        "rev": "6f36b27afd7b7ac8664bb62b7b27728540972c82",
         "type": "github"
       },
       "original": {
@@ -846,11 +846,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1720574943,
-        "narHash": "sha256-pAdtUK/zVnbv/vVf/cCG2dDOGnH82MwpLnSC4NimoQM=",
+        "lastModified": 1721525797,
+        "narHash": "sha256-3XfLw1qXUZVp0WzOfZpUC9kuQDC4pO/FQe+XyBMmA6w=",
         "owner": "nix-community",
         "repo": "nix-vscode-extensions",
-        "rev": "60e9954678590359aec7aeb211a17fbc1f3a535f",
+        "rev": "7a52354aeb98424039a5a7f1b69b3a93320e7c0d",
         "type": "github"
       },
       "original": {
diff --git a/flake.nix b/flake.nix
index c082411..62f958d 100644
--- a/flake.nix
+++ b/flake.nix
@@ -155,7 +155,7 @@
   outputs =
     inputs@{ self, nixpkgs, ... }:
     let
-      lib = nixpkgs.lib.extend (import ./lib);
+      lib = nixpkgs.lib.extend (lib: _: (import ./lib { inherit inputs lib system; }));
 
       system = "x86_64-linux";
 
@@ -167,12 +167,13 @@
         ];
       };
     in
+    with lib;
     {
       inherit lib;
 
       apps.${system}.default = {
         type = "app";
-        program = self.lib.getExe self.packages.${system}.nixfiles;
+        program = getExe self.packages.${system}.nixfiles;
       };
 
       packages.${system} = {
@@ -188,7 +189,7 @@
 
       legacyPackages.${system} = pkgs;
 
-      overlays = import ./overlays.nix lib;
+      overlays = import ./overlays.nix { inherit lib inputs; };
 
       devShells.${system}.default =
         with pkgs;
@@ -201,10 +202,7 @@
 
       checks.${system} = import ./checks.nix { inherit inputs pkgs system; };
 
-      nixosModules.default =
-        _: with lib; {
-          imports = attrValues (modulesIn ./modules);
-        };
+      nixosModules.default = _: { imports = attrValues (modulesIn ./modules); };
 
       nixosConfigurations = import ./configurations { inherit inputs lib pkgs; };
 
diff --git a/lib/default.nix b/lib/default.nix
index 4bd731e..55a34cf 100644
--- a/lib/default.nix
+++ b/lib/default.nix
@@ -1,7 +1,16 @@
-lib: _: with lib; rec {
-  my = import ./my.nix lib;
+{
+  lib,
+  inputs,
+  system,
+  ...
+}:
+with lib;
+rec {
+  my = import ./my.nix { inherit lib inputs system; };
 
-  dns = import ./dns.nix;
+  dns = import ./dns.nix { inherit lib inputs system; };
+
+  packages = import ./packages.nix { inherit lib inputs system; };
 
   isEven =
     number:
@@ -102,4 +111,5 @@ lib: _: with lib; rec {
       )
     ];
   };
+
 }
diff --git a/lib/dns.nix b/lib/dns.nix
index e1f6b7a..da1f1f2 100644
--- a/lib/dns.nix
+++ b/lib/dns.nix
@@ -1,4 +1,6 @@
-{
+{ lib, inputs, ... }:
+with lib;
+recursiveUpdate inputs.dns.lib {
   const = {
     quad9 = {
       default = [
diff --git a/lib/my.nix b/lib/my.nix
index 30f0e5c..5f5703e 100644
--- a/lib/my.nix
+++ b/lib/my.nix
@@ -1,4 +1,4 @@
-lib:
+{ lib, ... }:
 with lib;
 (evalModules {
   modules = [
diff --git a/lib/packages.nix b/lib/packages.nix
new file mode 100644
index 0000000..7f9dfcb
--- /dev/null
+++ b/lib/packages.nix
@@ -0,0 +1,18 @@
+{ inputs, system, ... }:
+rec {
+  useNixpkgs = nixpkgs: import nixpkgs { inherit system; };
+
+  fromMaster = useNixpkgs inputs.nixpkgs-master;
+  fromStable = useNixpkgs inputs.nixpkgs-stable;
+  fromUnstable = useNixpkgs (inputs.nixpkgs-unstable or inputs.nixpkgs);
+  fromRev =
+    rev: hash:
+    useNixpkgs (
+      inputs.nixpkgs.legacyPackages.${system}.fetchFromGitHub {
+        owner = "NixOS";
+        repo = "nixpkgs";
+        inherit rev hash;
+      }
+    );
+  fromPR = pr: fromRev "refs/pull/${toString pr}/head";
+}
diff --git a/modules/common/nix.nix b/modules/common/nix.nix
index fec9b80..233edda 100644
--- a/modules/common/nix.nix
+++ b/modules/common/nix.nix
@@ -24,36 +24,11 @@ in
 
   config =
     let
-      useNixpkgs =
-        nixpkgs:
-        import nixpkgs {
-          inherit (config.nixpkgs) config;
-          inherit (this) system;
-        };
-
-      pkgsLocal = useNixpkgs "${config.my.home}/src/nixpkgs"; # Impure!
-      pkgsMaster = useNixpkgs inputs.nixpkgs-master;
-      pkgsStable = useNixpkgs inputs.nixpkgs-stable;
-      pkgsRev =
-        rev: hash:
-        useNixpkgs (
-          pkgs.fetchFromGitHub {
-            owner = "NixOS";
-            repo = "nixpkgs";
-            inherit rev hash;
-          }
-        );
-      pkgsPR = pr: pkgsRev "refs/pull/${toString pr}/head";
+      pkgsLocal = packages.useNixpkgs "${config.my.home}/src/nixpkgs"; # Impure!
     in
     {
       _module.args = {
-        inherit
-          pkgsLocal
-          pkgsMaster
-          pkgsStable
-          pkgsRev
-          pkgsPR
-          ;
+        inherit pkgsLocal;
       };
 
       hm = {
@@ -126,12 +101,12 @@ in
 
         overlays = with inputs; [
           self.overlays.default
-          (_: _prev: {
-            # Global PR package overrides go here. Example:
-            # ```
-            # inherit (pkgsPR 309018 "sha256-x3ATxjrTVdaX5eo9P6pz+8/W6D2TNYzvjZpOBa3ZRI8=") endlessh-go;
-            # ```
-          })
+          # (_: _prev: with packages; {
+          #   # Global PR package overrides go here. Example:
+          #   # ```
+          #   # inherit (package.formPR 309018 "sha256-x3ATxjrTVdaX5eo9P6pz+8/W6D2TNYzvjZpOBa3ZRI8=") endlessh-go;
+          #   # ```
+          # })
         ];
       };
 
diff --git a/modules/firefox/addons.nix b/modules/firefox/addons.nix
index d53d9c9..70312f0 100644
--- a/modules/firefox/addons.nix
+++ b/modules/firefox/addons.nix
@@ -50,10 +50,10 @@
   };
   "darkreader" = buildFirefoxXpiAddon {
     pname = "darkreader";
-    version = "4.9.87";
+    version = "4.9.88";
     addonId = "addon@darkreader.org";
-    url = "https://addons.mozilla.org/firefox/downloads/file/4310627/darkreader-4.9.87.xpi";
-    sha256 = "0327d42e507979b0a0443b6aad24d011fea50dd020bcfd07b326bd3df285c79b";
+    url = "https://addons.mozilla.org/firefox/downloads/file/4317971/darkreader-4.9.88.xpi";
+    sha256 = "7a965d5880be9fbf8be81a106acd1968263b1acc2db0add580b30f2dd71954b3";
     meta = with lib; {
       homepage = "https://darkreader.org/";
       description = "Dark mode for every website. Take care of your eyes, use dark theme for night and daily browsing.";
@@ -119,10 +119,10 @@
   };
   "languagetool" = buildFirefoxXpiAddon {
     pname = "languagetool";
-    version = "8.9.1";
+    version = "8.10.4";
     addonId = "languagetool-webextension@languagetool.org";
-    url = "https://addons.mozilla.org/firefox/downloads/file/4298468/languagetool-8.9.1.xpi";
-    sha256 = "0747fcd4d7066ac746d140b93870a37eb5cf3241c3a5759128c54bf12b14feea";
+    url = "https://addons.mozilla.org/firefox/downloads/file/4317259/languagetool-8.10.4.xpi";
+    sha256 = "cf5fed5704ac8b6d4052fcf5819d1aa46ee61c76811393a7e355064baa32679c";
     meta = with lib; {
       homepage = "https://languagetool.org";
       description = "With this extension you can check text with the free style and grammar checker LanguageTool. It finds many errors that a simple spell checker cannot detect, like mixing up there/their, a/an, or repeating a word.";
@@ -288,10 +288,10 @@
   };
   "violentmonkey" = buildFirefoxXpiAddon {
     pname = "violentmonkey";
-    version = "2.19.0";
+    version = "2.20.0";
     addonId = "{aecec67f-0d10-4fa7-b7c7-609a2db280cf}";
-    url = "https://addons.mozilla.org/firefox/downloads/file/4289102/violentmonkey-2.19.0.xpi";
-    sha256 = "105433e09e87b33431f9b47351c13e189a6d9e6df9eb5d425b3d97676ea3dc3c";
+    url = "https://addons.mozilla.org/firefox/downloads/file/4315769/violentmonkey-2.20.0.xpi";
+    sha256 = "94fe88507ea47e8cc5ca80b76a6aaec44a486dbfd515a03f82f228dc24d49910";
     meta = with lib; {
       homepage = "https://violentmonkey.github.io/";
       description = "Userscript support for browsers, open source.";
diff --git a/modules/firefox/default.nix b/modules/firefox/default.nix
index ce2cecc..79c7320 100644
--- a/modules/firefox/default.nix
+++ b/modules/firefox/default.nix
@@ -111,15 +111,11 @@ in
                   }:
                   stdenv.mkDerivation {
                     name = "${pname}-${version}";
-                    inherit meta;
                     src = fetchurl { inherit url sha256; };
-                    preferLocalBuild = true;
-                    allowSubstitutes = true;
                     buildCommand = ''
-                      dst="$out/share/mozilla/extensions/{ec8030f7-c20a-464f-9b0e-13a3a9e97384}"
-                      mkdir -p "$dst"
-                      install -v -m644 "$src" "$dst/${addonId}.xpi"
+                      install -Dm644 "$src" "$out/share/mozilla/extensions/{ec8030f7-c20a-464f-9b0e-13a3a9e97384}/${addonId}.xpi"
                     '';
+                    inherit meta;
                   }
                 );
 
@@ -153,7 +149,7 @@ in
 
               engines =
                 let
-                  getIcon = url: sha256: pkgs.fetchurl { inherit url sha256; };
+                  getIcon = url: hash: pkgs.fetchurl { inherit url hash; };
                 in
                 {
                   "Amazon.com".metaData.hidden = true;
@@ -327,8 +323,8 @@ in
                   };
 
                   "NixOS Wiki" = {
-                    urls = [ { template = "https://nixos.wiki/index.php?search={searchTerms}"; } ];
-                    icon = getIcon "https://nixos.wiki/favicon.png" "sha256-DE8IgVninF6Aq3iNMgerhvF1dpoXqDUSibtWSpf/dN4=";
+                    urls = [ { template = "https://wiki.nixos.org/index.php?search={searchTerms}"; } ];
+                    icon = getIcon "https://wiki.nixos.org/favicon.ico" "sha256-88EXiL5AoP56bgteo2YXI00iK9cmd7DVg+RMbFxy6+k=";
                     definedAliases = [
                       "@nixoswiki"
                       "@nw"
@@ -412,7 +408,7 @@ in
                   };
 
                   "YouTube" = {
-                    urls = [ { template = "https://yewtu.be/search?q={}"; } ];
+                    urls = [ { template = "https://yewtu.be/search?q={searchTerms}"; } ];
                     icon = getIcon "https://www.youtube.com/s/desktop/280a3f09/img/favicon.ico" "sha256-i7HQ+kOhdDbVndVG9vdMdtxEc13vdSLCLYAxFm24kR0=";
                     definedAliases = [
                       "@youtube"
@@ -450,16 +446,7 @@ in
               };
               "0200".enable = true;
               "0300".enable = true;
-              "0400" = {
-                enable = true;
-                "0401"."browser.safebrowsing.phishing.enabled".enable = true;
-                "0402"."browser.safebrowsing.downloads.enabled".enable = true;
-                "0404" = {
-                  "browser.safebrowsing.downloads.remote.block_potentially_unwanted".enable = true;
-                  "browser.safebrowsing.downloads.remote.block_uncommon".enable = true;
-                };
-                "0405"."browser.safebrowsing.allowOverride".enable = true;
-              };
+              "0400".enable = true;
               "0600".enable = true;
               "0700" = {
                 enable = true;
@@ -468,19 +455,7 @@ in
                   value = 5;
                 };
               };
-              "0800" = {
-                enable = true;
-                "0830" = {
-                  "browser.search.separatePrivateDefault" = {
-                    enable = true;
-                    value = false;
-                  };
-                  "browser.search.separatePrivateDefault.ui.enabled" = {
-                    enable = true;
-                    value = false;
-                  };
-                };
-              };
+              "0800".enable = true;
               "0900".enable = true;
               "1000" = {
                 enable = true;
@@ -498,7 +473,12 @@ in
               "2700".enable = true;
               "2800" = {
                 enable = true;
-                "2811"."privacy.clearOnShutdown.history".value = false;
+                "2811" = {
+                  "privacy.clearOnShutdown.history".value = false;
+                  "privacy.clearOnShutdown_v2.historyFormDataAndDownloads".value = false;
+                };
+                "2820"."privacy.clearSiteData.historyFormDataAndDownloads".value = false;
+                "2830"."privacy.clearHistory.historyFormDataAndDownloads".value = false;
               };
               "4500" = {
                 enable = true;
@@ -508,6 +488,7 @@ in
               "5000" = {
                 enable = true;
                 "5003"."signon.rememberSignons".enable = true;
+                "5010"."browser.urlbar.suggest.topsites".enable = true;
                 "5017" = {
                   "extensions.formautofill.addresses.enabled".enable = true;
                   "extensions.formautofill.creditCards.enabled".enable = true;
@@ -516,8 +497,10 @@ in
               };
               "5500" = {
                 enable = true;
-                "5508"."media.eme.enabled".enable = true;
-                "5508"."browser.eme.ui.enabled".enable = true;
+                "5508" = {
+                  "media.eme.enabled".enable = true;
+                  "browser.eme.ui.enabled".enable = true;
+                };
               };
               "6000".enable = true;
               "7000".enable = true;
@@ -550,7 +533,6 @@ in
               "browser.toolbars.bookmarks.visibility" = "newtab";
               "browser.translations.enable" = false;
               "browser.urlbar.decodeURLsOnCopy" = true;
-              "browser.urlbar.suggest.engines" = false;
               "browser.warnOnQuitShortcut" = false;
               "devtools.everOpened" = true;
               "doh-rollout.home-region" = "US";
diff --git a/modules/git/default.nix b/modules/git/default.nix
index b32b5bc..d6e31f7 100644
--- a/modules/git/default.nix
+++ b/modules/git/default.nix
@@ -229,7 +229,7 @@ in
               ''
                 include ${config.services.nginx.package}/conf/fastcgi_params;
                 fastcgi_split_path_info ^(/?)(.+)$;
-                fastcgi_pass unix:${config.services.fcgiwrap.socketAddress};
+                fastcgi_pass unix:${config.services.fcgiwrap.cgit.socket.address};
                 fastcgi_param SCRIPT_FILENAME ${cfg.server.package}/cgit/cgit.cgi;
                 fastcgi_param CGIT_CONFIG ${cgitrc};
                 fastcgi_param PATH_INFO $uri;
@@ -287,8 +287,7 @@ in
             '';
           };
 
-          fcgiwrap = {
-            enable = true;
+          fcgiwrap.cgit.socket = {
             inherit user group;
           };
         };
diff --git a/modules/nsd.nix b/modules/nsd.nix
index 9adc084..322d88a 100644
--- a/modules/nsd.nix
+++ b/modules/nsd.nix
@@ -58,9 +58,6 @@ in
         ratelimit.enable = true;
 
         zones =
-          let
-            dns = inputs.dns.lib;
-          in
           with dns.combinators;
           let
             ips =
diff --git a/modules/shadowsocks.nix b/modules/shadowsocks.nix
index a70e2d1..5f847be 100644
--- a/modules/shadowsocks.nix
+++ b/modules/shadowsocks.nix
@@ -135,7 +135,7 @@ in
         name = "Shadowsocks";
         icon = pkgs.fetchurl {
           url = "https://upload.wikimedia.org/wikipedia/commons/f/f5/Shadowsocks-Logo.svg";
-          sha256 = "sha256-NzGt0WQA4NQpMPsOTWgBrghuewxQeDoSe46oTm0f+BY=";
+          hash = "sha256-NzGt0WQA4NQpMPsOTWgBrghuewxQeDoSe46oTm0f+BY=";
         };
         details.listen.text = ":::${toString port}";
       };
diff --git a/modules/vim.nix b/modules/vim.nix
index 7209e8b..ecd1336 100644
--- a/modules/vim.nix
+++ b/modules/vim.nix
@@ -16,6 +16,8 @@ in
     hm.stylix.targets.vim.enable = false;
 
     programs.vim = {
+      enable = true;
+      defaultEditor = true;
       package = mkIf this.isHeadful (
         pkgs.vim-full.customize {
           name = "vim";
@@ -201,8 +203,6 @@ in
           };
         }
       );
-
-      defaultEditor = true;
     };
   };
 }
diff --git a/overlays.nix b/overlays.nix
index 8e774e2..9e12522 100644
--- a/overlays.nix
+++ b/overlays.nix
@@ -1,4 +1,7 @@
-_: {
+{ lib, ... }:
+with lib;
+with packages;
+{
   default = final: prev: {
     bruh = prev.callPackage ./packages/bruh.nix { };
 
@@ -89,5 +92,8 @@ _: {
           withSystemVencord = false;
           withTTS = false;
         };
+
+    inherit (fromPR 328633 "sha256-TL0DkMGm0SXdkSRNa9LtpCFLgX3RLAqujTIJkW0nb+E=") soju;
+    inherit (fromPR 326898 "sha256-BLHeK1MNWQQXOwL2UkBj4OitBeg6D693lIKQbS+4hPk=") packcc;
   };
 }

Consider giving Nix/NixOS a try! <3