diff --git a/flake.lock b/flake.lock
deleted file mode 100644
index 5390070..0000000
--- a/flake.lock
+++ /dev/null
@@ -1,717 +0,0 @@
-{
-  "nodes": {
-    "attic": {
-      "inputs": {
-        "crane": "crane",
-        "flake-compat": "flake-compat",
-        "flake-utils": [
-          "flake-utils"
-        ],
-        "nixpkgs": [
-          "unstable"
-        ],
-        "nixpkgs-stable": [
-          "nixpkgs"
-        ]
-      },
-      "locked": {
-        "lastModified": 1686620679,
-        "narHash": "sha256-Ck/r3f+W9mOn3cHn5ii/fogBiJtosFnDaOQveaJ0zVU=",
-        "owner": "zhaofengli",
-        "repo": "attic",
-        "rev": "4fedffe6a1020edfcfa7bef18d21321d4983b3a7",
-        "type": "github"
-      },
-      "original": {
-        "owner": "zhaofengli",
-        "repo": "attic",
-        "type": "github"
-      }
-    },
-    "blobs": {
-      "flake": false,
-      "locked": {
-        "lastModified": 1604995301,
-        "narHash": "sha256-wcLzgLec6SGJA8fx1OEN1yV/Py5b+U5iyYpksUY/yLw=",
-        "owner": "simple-nixos-mailserver",
-        "repo": "blobs",
-        "rev": "2cccdf1ca48316f2cfd1c9a0017e8de5a7156265",
-        "type": "gitlab"
-      },
-      "original": {
-        "owner": "simple-nixos-mailserver",
-        "repo": "blobs",
-        "type": "gitlab"
-      }
-    },
-    "crane": {
-      "inputs": {
-        "flake-compat": [
-          "attic",
-          "flake-compat"
-        ],
-        "flake-utils": [
-          "attic",
-          "flake-utils"
-        ],
-        "nixpkgs": [
-          "attic",
-          "nixpkgs"
-        ],
-        "rust-overlay": "rust-overlay"
-      },
-      "locked": {
-        "lastModified": 1677892403,
-        "narHash": "sha256-/Wi0L1spSWLFj+UQxN3j0mPYMoc7ZoAujpUF/juFVII=",
-        "owner": "ipetkov",
-        "repo": "crane",
-        "rev": "105e27adb70a9890986b6d543a67761cbc1964a2",
-        "type": "github"
-      },
-      "original": {
-        "owner": "ipetkov",
-        "repo": "crane",
-        "type": "github"
-      }
-    },
-    "deploy-rs": {
-      "inputs": {
-        "flake-compat": "flake-compat_2",
-        "nixpkgs": [
-          "unstable"
-        ],
-        "utils": [
-          "flake-utils"
-        ]
-      },
-      "locked": {
-        "lastModified": 1686747123,
-        "narHash": "sha256-XUQK9kwHpTeilHoad7L4LjMCCyY13Oq383CoFADecRE=",
-        "owner": "serokell",
-        "repo": "deploy-rs",
-        "rev": "724463b5a94daa810abfc64a4f87faef4e00f984",
-        "type": "github"
-      },
-      "original": {
-        "owner": "serokell",
-        "repo": "deploy-rs",
-        "type": "github"
-      }
-    },
-    "flake-compat": {
-      "flake": false,
-      "locked": {
-        "lastModified": 1673956053,
-        "narHash": "sha256-4gtG9iQuiKITOjNQQeQIpoIB6b16fm+504Ch3sNKLd8=",
-        "owner": "edolstra",
-        "repo": "flake-compat",
-        "rev": "35bb57c0c8d8b62bbfd284272c928ceb64ddbde9",
-        "type": "github"
-      },
-      "original": {
-        "owner": "edolstra",
-        "repo": "flake-compat",
-        "type": "github"
-      }
-    },
-    "flake-compat_2": {
-      "flake": false,
-      "locked": {
-        "lastModified": 1668681692,
-        "narHash": "sha256-Ht91NGdewz8IQLtWZ9LCeNXMSXHUss+9COoqu6JLmXU=",
-        "owner": "edolstra",
-        "repo": "flake-compat",
-        "rev": "009399224d5e398d03b22badca40a37ac85412a1",
-        "type": "github"
-      },
-      "original": {
-        "owner": "edolstra",
-        "repo": "flake-compat",
-        "type": "github"
-      }
-    },
-    "flake-compat_3": {
-      "flake": false,
-      "locked": {
-        "lastModified": 1673956053,
-        "narHash": "sha256-4gtG9iQuiKITOjNQQeQIpoIB6b16fm+504Ch3sNKLd8=",
-        "owner": "edolstra",
-        "repo": "flake-compat",
-        "rev": "35bb57c0c8d8b62bbfd284272c928ceb64ddbde9",
-        "type": "github"
-      },
-      "original": {
-        "owner": "edolstra",
-        "repo": "flake-compat",
-        "type": "github"
-      }
-    },
-    "flake-compat_4": {
-      "locked": {
-        "lastModified": 1688025799,
-        "narHash": "sha256-ktpB4dRtnksm9F5WawoIkEneh1nrEvuxb5lJFt1iOyw=",
-        "owner": "nix-community",
-        "repo": "flake-compat",
-        "rev": "8bf105319d44f6b9f0d764efa4fdef9f1cc9ba1c",
-        "type": "github"
-      },
-      "original": {
-        "owner": "nix-community",
-        "repo": "flake-compat",
-        "type": "github"
-      }
-    },
-    "flake-utils": {
-      "inputs": {
-        "systems": "systems"
-      },
-      "locked": {
-        "lastModified": 1689068808,
-        "narHash": "sha256-6ixXo3wt24N/melDWjq70UuHQLxGV8jZvooRanIHXw0=",
-        "owner": "numtide",
-        "repo": "flake-utils",
-        "rev": "919d646de7be200f3bf08cb76ae1f09402b6f9b4",
-        "type": "github"
-      },
-      "original": {
-        "owner": "numtide",
-        "repo": "flake-utils",
-        "type": "github"
-      }
-    },
-    "home-manager": {
-      "inputs": {
-        "nixpkgs": [
-          "unstable"
-        ]
-      },
-      "locked": {
-        "lastModified": 1687871164,
-        "narHash": "sha256-bBFlPthuYX322xOlpJvkjUBz0C+MOBjZdDOOJJ+G2jU=",
-        "owner": "nix-community",
-        "repo": "home-manager",
-        "rev": "07c347bb50994691d7b0095f45ebd8838cf6bc38",
-        "type": "github"
-      },
-      "original": {
-        "owner": "nix-community",
-        "ref": "release-23.05",
-        "repo": "home-manager",
-        "type": "github"
-      }
-    },
-    "homepage": {
-      "flake": false,
-      "locked": {
-        "lastModified": 1639518131,
-        "narHash": "sha256-YuwHCXEbrzuEyRy1/2bX4Rux/nqmzRZ8H44+83JQNV8=",
-        "owner": "JulienMalka",
-        "repo": "homepage",
-        "rev": "29e779d8600b1c1e6235570a3614a54f8ec8126e",
-        "type": "github"
-      },
-      "original": {
-        "owner": "JulienMalka",
-        "repo": "homepage",
-        "type": "github"
-      }
-    },
-    "hyprland": {
-      "inputs": {
-        "hyprland-protocols": "hyprland-protocols",
-        "nixpkgs": "nixpkgs",
-        "wlroots": "wlroots",
-        "xdph": "xdph"
-      },
-      "locked": {
-        "lastModified": 1689357751,
-        "narHash": "sha256-72rOd/X5dyO/5fxmeXz5oT13/Di5C71nyEj534rU2T4=",
-        "owner": "hyprwm",
-        "repo": "Hyprland",
-        "rev": "459afcc47f7a8fd0b85c4b89645099e2643732b3",
-        "type": "github"
-      },
-      "original": {
-        "owner": "hyprwm",
-        "repo": "Hyprland",
-        "type": "github"
-      }
-    },
-    "hyprland-protocols": {
-      "inputs": {
-        "nixpkgs": [
-          "hyprland",
-          "nixpkgs"
-        ]
-      },
-      "locked": {
-        "lastModified": 1684265364,
-        "narHash": "sha256-AxNnWbthsuNx73HDQr0eBxrcE3+yfl/WsaXZqUFmkpQ=",
-        "owner": "hyprwm",
-        "repo": "hyprland-protocols",
-        "rev": "8c279b9fb0f2b031427dc5ef4eab53f2ed835530",
-        "type": "github"
-      },
-      "original": {
-        "owner": "hyprwm",
-        "repo": "hyprland-protocols",
-        "type": "github"
-      }
-    },
-    "hyprpaper": {
-      "inputs": {
-        "nixpkgs": "nixpkgs_2"
-      },
-      "locked": {
-        "lastModified": 1687552413,
-        "narHash": "sha256-mTOKGRi8mJVzJEnTaHpni5Whi1ohoWguLaD6Hs+ruZE=",
-        "owner": "hyprwm",
-        "repo": "hyprpaper",
-        "rev": "a1d9ab7584485fe0b4a992abf19486a72179d4b2",
-        "type": "github"
-      },
-      "original": {
-        "owner": "hyprwm",
-        "repo": "hyprpaper",
-        "type": "github"
-      }
-    },
-    "linkal": {
-      "inputs": {
-        "flake-utils": [
-          "flake-utils"
-        ],
-        "nixpkgs": [
-          "nixpkgs"
-        ]
-      },
-      "locked": {
-        "lastModified": 1688227218,
-        "narHash": "sha256-hlZlGblw7PDRlC4dBJVC3hwy+HZbXC+Mq4jbXP94ya4=",
-        "owner": "JulienMalka",
-        "repo": "Linkal",
-        "rev": "354b464cd6b6263f41b19ba05ab5163d0e8203db",
-        "type": "github"
-      },
-      "original": {
-        "owner": "JulienMalka",
-        "ref": "main",
-        "repo": "Linkal",
-        "type": "github"
-      }
-    },
-    "lowdown-src": {
-      "flake": false,
-      "locked": {
-        "lastModified": 1633514407,
-        "narHash": "sha256-Dw32tiMjdK9t3ETl5fzGrutQTzh2rufgZV4A/BbxuD4=",
-        "owner": "kristapsdz",
-        "repo": "lowdown",
-        "rev": "d2c2b44ff6c27b936ec27358a2653caaef8f73b8",
-        "type": "github"
-      },
-      "original": {
-        "owner": "kristapsdz",
-        "repo": "lowdown",
-        "type": "github"
-      }
-    },
-    "nil": {
-      "inputs": {
-        "flake-utils": [
-          "flake-utils"
-        ],
-        "nixpkgs": [
-          "unstable"
-        ],
-        "rust-overlay": "rust-overlay_2"
-      },
-      "locked": {
-        "lastModified": 1689122205,
-        "narHash": "sha256-ZmV4ADgbcwRWKot3ZWSoV0FeWwgp50gYoMlS5aEibUY=",
-        "owner": "oxalica",
-        "repo": "nil",
-        "rev": "a7ab280e8607b52c25d899cdf7532db1ff71262f",
-        "type": "github"
-      },
-      "original": {
-        "owner": "oxalica",
-        "repo": "nil",
-        "type": "github"
-      }
-    },
-    "nix-index-database": {
-      "inputs": {
-        "nixpkgs": [
-          "nixpkgs"
-        ]
-      },
-      "locked": {
-        "lastModified": 1688874465,
-        "narHash": "sha256-BUwl+tq40EjkufTZkqf3lWFzxOA/mYBTHz+p5uJtjaY=",
-        "owner": "Mic92",
-        "repo": "nix-index-database",
-        "rev": "757114749d4613cf71f3748e780a1be8a67a5d3c",
-        "type": "github"
-      },
-      "original": {
-        "owner": "Mic92",
-        "repo": "nix-index-database",
-        "type": "github"
-      }
-    },
-    "nix-rfc-92": {
-      "inputs": {
-        "flake-compat": "flake-compat_3",
-        "lowdown-src": "lowdown-src",
-        "nixpkgs": "nixpkgs_3",
-        "nixpkgs-regression": "nixpkgs-regression"
-      },
-      "locked": {
-        "lastModified": 1684431887,
-        "narHash": "sha256-8OseET429kYImX6QRoJXxGd1B/6/Ju7IRQQ7MlsZeCE=",
-        "owner": "obsidiansystems",
-        "repo": "nix",
-        "rev": "4f650501586104017d73cbfe41763c0fdf6d9e30",
-        "type": "github"
-      },
-      "original": {
-        "owner": "obsidiansystems",
-        "ref": "dynamic-drvs",
-        "repo": "nix",
-        "type": "github"
-      }
-    },
-    "nixos-apple-silicon": {
-      "inputs": {
-        "flake-compat": "flake-compat_4",
-        "nixpkgs": "nixpkgs_4",
-        "rust-overlay": "rust-overlay_3"
-      },
-      "locked": {
-        "lastModified": 1689219568,
-        "narHash": "sha256-03oq6imX0mOidSmjoLjt/mSE2/6D6d4q0/UQcPn5/Zc=",
-        "owner": "tpwrules",
-        "repo": "nixos-apple-silicon",
-        "rev": "07eef29d1214b40da45ff2fae5d7e7498a0dd8ab",
-        "type": "github"
-      },
-      "original": {
-        "owner": "tpwrules",
-        "repo": "nixos-apple-silicon",
-        "type": "github"
-      }
-    },
-    "nixpkgs": {
-      "locked": {
-        "lastModified": 1688500189,
-        "narHash": "sha256-djYYiY4lzJOlXOnTHytH6BUugrxHDZjuGxTSrU4gt4M=",
-        "owner": "NixOS",
-        "repo": "nixpkgs",
-        "rev": "78419edadf0fabbe5618643bd850b2f2198ed060",
-        "type": "github"
-      },
-      "original": {
-        "owner": "NixOS",
-        "ref": "nixos-unstable",
-        "repo": "nixpkgs",
-        "type": "github"
-      }
-    },
-    "nixpkgs-regression": {
-      "locked": {
-        "lastModified": 1643052045,
-        "narHash": "sha256-uGJ0VXIhWKGXxkeNnq4TvV3CIOkUJ3PAoLZ3HMzNVMw=",
-        "owner": "NixOS",
-        "repo": "nixpkgs",
-        "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2",
-        "type": "github"
-      },
-      "original": {
-        "owner": "NixOS",
-        "repo": "nixpkgs",
-        "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2",
-        "type": "github"
-      }
-    },
-    "nixpkgs_2": {
-      "locked": {
-        "lastModified": 1683014792,
-        "narHash": "sha256-6Va9iVtmmsw4raBc3QKvQT2KT/NGRWlvUlJj46zN8B8=",
-        "owner": "NixOS",
-        "repo": "nixpkgs",
-        "rev": "1a411f23ba299db155a5b45d5e145b85a7aafc42",
-        "type": "github"
-      },
-      "original": {
-        "owner": "NixOS",
-        "ref": "nixos-unstable",
-        "repo": "nixpkgs",
-        "type": "github"
-      }
-    },
-    "nixpkgs_3": {
-      "locked": {
-        "lastModified": 1670461440,
-        "narHash": "sha256-jy1LB8HOMKGJEGXgzFRLDU1CBGL0/LlkolgnqIsF0D8=",
-        "owner": "NixOS",
-        "repo": "nixpkgs",
-        "rev": "04a75b2eecc0acf6239acf9dd04485ff8d14f425",
-        "type": "github"
-      },
-      "original": {
-        "owner": "NixOS",
-        "ref": "nixos-22.11-small",
-        "repo": "nixpkgs",
-        "type": "github"
-      }
-    },
-    "nixpkgs_4": {
-      "locked": {
-        "lastModified": 1689008574,
-        "narHash": "sha256-VFMgyHDiqsGDkRg73alv6OdHJAqhybryWHv77bSCGIw=",
-        "owner": "nixos",
-        "repo": "nixpkgs",
-        "rev": "4a729ce4b1fe5ec4fffc71c67c96aa5184ebb462",
-        "type": "github"
-      },
-      "original": {
-        "owner": "nixos",
-        "repo": "nixpkgs",
-        "rev": "4a729ce4b1fe5ec4fffc71c67c96aa5184ebb462",
-        "type": "github"
-      }
-    },
-    "nixpkgs_5": {
-      "locked": {
-        "lastModified": 1689209875,
-        "narHash": "sha256-8AVcBV1DiszaZzHFd5iLc8HSLfxRAuqcU0QdfBEF3Ag=",
-        "owner": "NixOS",
-        "repo": "nixpkgs",
-        "rev": "fcc147b1e9358a8386b2c4368bd928e1f63a7df2",
-        "type": "github"
-      },
-      "original": {
-        "owner": "NixOS",
-        "ref": "nixos-23.05",
-        "repo": "nixpkgs",
-        "type": "github"
-      }
-    },
-    "root": {
-      "inputs": {
-        "attic": "attic",
-        "deploy-rs": "deploy-rs",
-        "flake-utils": "flake-utils",
-        "home-manager": "home-manager",
-        "homepage": "homepage",
-        "hyprland": "hyprland",
-        "hyprpaper": "hyprpaper",
-        "linkal": "linkal",
-        "nil": "nil",
-        "nix-index-database": "nix-index-database",
-        "nix-rfc-92": "nix-rfc-92",
-        "nixos-apple-silicon": "nixos-apple-silicon",
-        "nixpkgs": "nixpkgs_5",
-        "simple-nixos-mailserver": "simple-nixos-mailserver",
-        "sops-nix": "sops-nix",
-        "unstable": "unstable"
-      }
-    },
-    "rust-overlay": {
-      "inputs": {
-        "flake-utils": [
-          "attic",
-          "crane",
-          "flake-utils"
-        ],
-        "nixpkgs": [
-          "attic",
-          "crane",
-          "nixpkgs"
-        ]
-      },
-      "locked": {
-        "lastModified": 1675391458,
-        "narHash": "sha256-ukDKZw922BnK5ohL9LhwtaDAdCsJL7L6ScNEyF1lO9w=",
-        "owner": "oxalica",
-        "repo": "rust-overlay",
-        "rev": "383a4acfd11d778d5c2efcf28376cbd845eeaedf",
-        "type": "github"
-      },
-      "original": {
-        "owner": "oxalica",
-        "repo": "rust-overlay",
-        "type": "github"
-      }
-    },
-    "rust-overlay_2": {
-      "inputs": {
-        "flake-utils": [
-          "nil",
-          "flake-utils"
-        ],
-        "nixpkgs": [
-          "nil",
-          "nixpkgs"
-        ]
-      },
-      "locked": {
-        "lastModified": 1688783586,
-        "narHash": "sha256-HHaM2hk2azslv1kH8zmQxXo2e7i5cKgzNIuK4yftzB0=",
-        "owner": "oxalica",
-        "repo": "rust-overlay",
-        "rev": "7a29283cc242c2486fc67f60b431ef708046d176",
-        "type": "github"
-      },
-      "original": {
-        "owner": "oxalica",
-        "repo": "rust-overlay",
-        "type": "github"
-      }
-    },
-    "rust-overlay_3": {
-      "flake": false,
-      "locked": {
-        "lastModified": 1686795910,
-        "narHash": "sha256-jDa40qRZ0GRQtP9EMZdf+uCbvzuLnJglTUI2JoHfWDc=",
-        "owner": "oxalica",
-        "repo": "rust-overlay",
-        "rev": "5c2b97c0a9bc5217fc3dfb1555aae0fb756d99f9",
-        "type": "github"
-      },
-      "original": {
-        "owner": "oxalica",
-        "repo": "rust-overlay",
-        "type": "github"
-      }
-    },
-    "simple-nixos-mailserver": {
-      "inputs": {
-        "blobs": "blobs",
-        "nixpkgs": [
-          "unstable"
-        ],
-        "nixpkgs-22_11": [
-          "nixpkgs"
-        ],
-        "utils": [
-          "flake-utils"
-        ]
-      },
-      "locked": {
-        "lastModified": 1671659164,
-        "narHash": "sha256-DbpT+v1POwFOInbrDL+vMbYV3mVbTkMxmJ5j50QnOcA=",
-        "owner": "simple-nixos-mailserver",
-        "repo": "nixos-mailserver",
-        "rev": "bc667fb6afc45f6cc2d118ab77658faf2227cffd",
-        "type": "gitlab"
-      },
-      "original": {
-        "owner": "simple-nixos-mailserver",
-        "ref": "nixos-22.11",
-        "repo": "nixos-mailserver",
-        "type": "gitlab"
-      }
-    },
-    "sops-nix": {
-      "inputs": {
-        "nixpkgs": [
-          "unstable"
-        ],
-        "nixpkgs-stable": [
-          "nixpkgs"
-        ]
-      },
-      "locked": {
-        "lastModified": 1689149796,
-        "narHash": "sha256-3FCUdayBHcxk6BZOxEIfa5UxbXNQzTc/VlN7ociI2Dw=",
-        "owner": "Mic92",
-        "repo": "sops-nix",
-        "rev": "88b964df6981e4844c07be8c192aa6bdca768a10",
-        "type": "github"
-      },
-      "original": {
-        "owner": "Mic92",
-        "repo": "sops-nix",
-        "type": "github"
-      }
-    },
-    "systems": {
-      "locked": {
-        "lastModified": 1681028828,
-        "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
-        "owner": "nix-systems",
-        "repo": "default",
-        "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
-        "type": "github"
-      },
-      "original": {
-        "owner": "nix-systems",
-        "repo": "default",
-        "type": "github"
-      }
-    },
-    "unstable": {
-      "locked": {
-        "lastModified": 1689282004,
-        "narHash": "sha256-VNhuyb10c9SV+3hZOlxwJwzEGytZ31gN9w4nPCnNvdI=",
-        "owner": "NixOS",
-        "repo": "nixpkgs",
-        "rev": "e74e68449c385db82de3170288a28cd0f608544f",
-        "type": "github"
-      },
-      "original": {
-        "owner": "NixOS",
-        "ref": "nixos-unstable",
-        "repo": "nixpkgs",
-        "type": "github"
-      }
-    },
-    "wlroots": {
-      "flake": false,
-      "locked": {
-        "host": "gitlab.freedesktop.org",
-        "lastModified": 1686753331,
-        "narHash": "sha256-KovjVFwcuoUO0eu/UiWrnD3+m/K+SHSAVIz4xF9K1XA=",
-        "owner": "wlroots",
-        "repo": "wlroots",
-        "rev": "7e7633abf09b362d0bad9e3fc650fd692369291d",
-        "type": "gitlab"
-      },
-      "original": {
-        "host": "gitlab.freedesktop.org",
-        "owner": "wlroots",
-        "repo": "wlroots",
-        "type": "gitlab"
-      }
-    },
-    "xdph": {
-      "inputs": {
-        "hyprland-protocols": [
-          "hyprland",
-          "hyprland-protocols"
-        ],
-        "nixpkgs": [
-          "hyprland",
-          "nixpkgs"
-        ]
-      },
-      "locked": {
-        "lastModified": 1685385764,
-        "narHash": "sha256-r+XMyOoRXq+hlfjayb+fyi9kq2JK48TrwuNIAXqlj7U=",
-        "owner": "hyprwm",
-        "repo": "xdg-desktop-portal-hyprland",
-        "rev": "4d9ff0c17716936e0b5ca577a39e263633901ed1",
-        "type": "github"
-      },
-      "original": {
-        "owner": "hyprwm",
-        "repo": "xdg-desktop-portal-hyprland",
-        "type": "github"
-      }
-    }
-  },
-  "root": "root",
-  "version": 7
-}
diff --git a/flake.nix b/flake.nix
index e26beda..65e2b9c 100644
--- a/flake.nix
+++ b/flake.nix
@@ -64,17 +64,15 @@
       inputs.flake-utils.follows = "flake-utils";
     };
 
-    nil = {
-      url = "github:oxalica/nil";
-      inputs.flake-utils.follows = "flake-utils";
+    nixd = {
+      url = "github:nix-community/nixd";
       inputs.nixpkgs.follows = "unstable";
     };
 
-    nix-index-database =
-      {
-        url = "github:Mic92/nix-index-database";
-        inputs.nixpkgs.follows = "nixpkgs";
-      };
+    nix-index-database = {
+      url = "github:Mic92/nix-index-database";
+      inputs.nixpkgs.follows = "nixpkgs";
+    };
 
     nix-rfc-92.url = "github:obsidiansystems/nix/dynamic-drvs";
 
diff --git a/home-manager-modules/neovim/default.nix b/home-manager-modules/neovim/default.nix
index a0d3745..6edf79a 100644
--- a/home-manager-modules/neovim/default.nix
+++ b/home-manager-modules/neovim/default.nix
@@ -64,12 +64,17 @@ with lib;
               };
 
               nix = {
-                command = "nil";
+                command = "nixd";
                 filetypes = [ "nix" ];
                 rootPatterns = [ "flake.nix" ];
                 settings = {
-                  nil = {
-                    formatting = { command = [ "nixpkgs-fmt" ]; };
+                  nixd = {
+                    formatting = {
+                      command = "nixpkgs-fmt";
+                    };
+                    options = {
+                      enable = true;
+                    };
                   };
                 };
               };
@@ -126,7 +131,7 @@ with lib;
         rust-vim
       ];
 
-      extraPackages = with pkgs; [ rust-analyzer pkgs.nil pyright nixpkgs-fmt ormolu ccls gopls ];
+      extraPackages = with pkgs; [ rust-analyzer pkgs.nixd pyright nixpkgs-fmt ormolu ccls gopls ];
 
       extraConfig = ''
         luafile ${./settings.lua}
diff --git a/lib/default.nix b/lib/default.nix
index 32d3629..8c15774 100644
--- a/lib/default.nix
+++ b/lib/default.nix
@@ -56,7 +56,7 @@ in
               mosh = prev.unstable.mosh;
               hyprpaper = inputs.hyprpaper.packages.${system}.default;
               attic = inputs.attic.packages.${system}.default;
-              nil = inputs.nil.packages.${system}.default;
+              nixd = inputs.nixd.packages.${system}.default;
               keycloak-keywind = prev.pkgs.callPackage ../packages/keycloak-keywind { };
               nix-rfc-92 = inputs.nix-rfc-92.packages.${system}.default;
             })
diff --git a/machines/core-security/default.nix b/machines/core-security/default.nix
index 2493d20..511d6ed 100644
--- a/machines/core-security/default.nix
+++ b/machines/core-security/default.nix
@@ -74,7 +74,7 @@
   networking.firewall.checkReversePath = "loose";
 
 
-  services.nginx.enable = true;
+  luj.nginx.enable = true;
   services.nginx.virtualHosts."vaults.malka.family" = {
     forceSSL = true;
     enableACME = true;
diff --git a/machines/tower/default.nix b/machines/tower/default.nix
index 484b1ac..fdf9ac1 100644
--- a/machines/tower/default.nix
+++ b/machines/tower/default.nix
@@ -102,7 +102,8 @@
 
   services.grafana.enable = true;
   services.grafana.settings.server.http_port = 3000;
-  services.victoriametrics.enable = true;
+  services.prometheus.enable = true;
+  services.prometheus.pushgateway.enable = true;
 
   services.nginx.virtualHosts."data.julienmalka.me" = {
     forceSSL = true;
@@ -118,10 +119,17 @@
     forceSSL = true;
     enableACME = true;
     locations."/" = {
-      proxyPass = "http://localhost:8428";
+      proxyPass = "http://localhost:9090";
     };
   };
 
+  services.nginx.virtualHosts."push.julienmalka.me" = {
+    forceSSL = true;
+    enableACME = true;
+    locations."/" = {
+      proxyPass = "http://localhost:9090";
+    };
+  };
 
 
 
diff --git a/modules/buildbot/default.nix b/modules/buildbot/default.nix
index cacb19a..f6a7b27 100644
--- a/modules/buildbot/default.nix
+++ b/modules/buildbot/default.nix
@@ -129,7 +129,7 @@ in
         pkgs.nix-output-monitor
       ];
       environment.PYTHONPATH = "${python.withPackages (_: [package])}/${python.sitePackages}";
-      environment.MASTER_URL = ''tcp:host=localhost:port=9989'';
+      environment.MASTER_URL = ''tcp:host=127.0.0.1:port=9989'';
       environment.BUILDBOT_DIR = buildbotDir;
       environment.WORKER_PASSWORD_FILE = config.sops.secrets.buildbot-nix-worker-password.path;
 
diff --git a/modules/buildbot/master.py b/modules/buildbot/master.py
index 1d5877b..ec389a1 100644
--- a/modules/buildbot/master.py
+++ b/modules/buildbot/master.py
@@ -269,7 +269,7 @@ def build_config() -> dict[str, Any]:
 
     c["db"] = {"db_url": os.environ.get("DB_URL", "sqlite:///state.sqlite")}
 
-    c["protocols"] = {"pb": {"port": "tcp:9989:interface=\\:\\:"}}
+    c["protocols"] = {"pb": {"port": "tcp:9989:interface=127.0.0.1"}}
     c["buildbotURL"] = BUILDBOT_URL
     c["collapseRequests"] = False
 
diff --git a/secrets/buildbot-nix-workers b/secrets/buildbot-nix-workers
index 5ac61bd..a72320f 100644
--- a/secrets/buildbot-nix-workers
+++ b/secrets/buildbot-nix-workers
@@ -1,5 +1,5 @@
 {
-	"data": "ENC[AES256_GCM,data:FeQ676KXdgykvJXWB3Tw+M8wI01bfCQ1Io5aH1fUyh71zqZ+Nbkb5TYJXZ1Org0s2MIteGhawcHm08dvs2x2FCAiu05XWvVAr8x8SKE=,iv:Tui8Mdu9PwPxeyKASKZIeGs92mmC4NC2Y0OSvTTSDw8=,tag:RTTC8+eGqw/sY5XTvcvnjg==,type:str]",
+	"data": "ENC[AES256_GCM,data:3n9AjM3MOsFzeJ26cFz1bzL4FjjTTl4uYmVpOAi3Uoo8Tgf09jtLksocRFQE46sBkCNBjfpluihNjD74UdEjBN6ieWPmOY6Gx7YUe89Z,iv:wifzTCW9sB2mutxmnKwfo37M2134a3zhGxZ16h9Gm/E=,tag:8Rdszajm8IhDgItMJ5DkKQ==,type:str]",
 	"sops": {
 		"kms": null,
 		"gcp_kms": null,
@@ -11,8 +11,8 @@
 				"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBReGpFbFhHelhYLzRYSGlh\nZ3ZiL1FjNUdhUFJmVTB5R1pPYVNtMzNYdFhzCmpRakVzNWJWTFBsUlFtMDVrUisr\nbW01YkhkS2ZUcUZDWktRWVBCSTRmN3MKLS0tIE4rdGd4cStQdU5TVENQMFRmaits\nUndjTnN2NFFObUxiWXdXTHBtUGhKMU0KNe7I99AOUMyubXmOsq9vVVAlYa+AbUi8\nCdw6AZ6kJjTlXh4MpfpuJ8OZGVt4hsLWhiFNqyFkpRAjkj4Tsc6RaQ==\n-----END AGE ENCRYPTED FILE-----\n"
 			}
 		],
-		"lastmodified": "2023-01-19T18:14:24Z",
-		"mac": "ENC[AES256_GCM,data:z1XUUHW2LnPdJAMAJh+J198IMHvk4Hx31U2K7HQELiGo2GI6uBnctfErzZEMTK1iwnmwNZBe5ZAqHzsBkZCq52OlevRmmNBZRhRZmxpjrD4N0onnkoZ+o7vIq2rxeSSFDyhUznUf9/RTV+KxJNM7OH32Siote74tpUOVTGHdVYQ=,iv:Ea/+e/XDyV4kj1eSL/Aiefx0BjZwl4bKQQhZzbPaRiU=,tag:Xb8TiUz0JTzX9kEpCeMZFg==,type:str]",
+		"lastmodified": "2023-06-15T21:20:32Z",
+		"mac": "ENC[AES256_GCM,data:xGKW6jssMomt53NHYyleYgNHj6nwuwk4P8fyX8d2/nrLn2yqkDCt5YS1xB2PHckT+YJS/CAFFETAmMVmqeYaKcvzLgY6SAU6haQT8obhRjok7PGfypFvGrf5/zfSU0xnzfdnLEjfZ6bjXkdV2w2j++br7K4yg4QUF6n+sD4M4hU=,iv:+WaJcZ7x+e38eqVUJqjSO3StAPJurzAnOGhoaAocHQM=,tag:EjgjiBjngyTh2QbOpWse8w==,type:str]",
 		"pgp": null,
 		"unencrypted_suffix": "_unencrypted",
 		"version": "3.7.3"