about summary refs log tree commit diff stats
path: root/flake
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--flake.lock259
-rw-r--r--flake.lock.license9
-rw-r--r--flake.nix111
-rw-r--r--flake/apps/default.nix23
-rw-r--r--flake/default.nix120
-rw-r--r--flake/nixosConfigurations/default.nix86
-rw-r--r--flake/packages/default.nix20
-rw-r--r--flake/treefmt.nix9
8 files changed, 209 insertions, 428 deletions
diff --git a/flake.lock b/flake.lock
index 6b1f16fb..6bcf88a2 100644
--- a/flake.lock
+++ b/flake.lock
@@ -16,11 +16,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1736955230,
-        "narHash": "sha256-uenf8fv2eG5bKM8C/UvFaiJMZ4IpUFaQxk9OH5t/1gA=",
+        "lastModified": 1747575206,
+        "narHash": "sha256-NwmAFuDUO/PFcgaGGr4j3ozG9Pe5hZ/ogitWhY+D81k=",
         "owner": "ryantm",
         "repo": "agenix",
-        "rev": "e600439ec4c273cf11e06fe4d9d906fb98fa097c",
+        "rev": "4835b1dc898959d8547a871ef484930675cb47f1",
         "type": "github"
       },
       "original": {
@@ -42,11 +42,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1744011341,
-        "narHash": "sha256-ZwyAdfXgfigchDLMZ/UqSjLc5YKk2xnchGHuWaNfqmQ=",
+        "lastModified": 1747987475,
+        "narHash": "sha256-vOcpx0ytmD5B+Kd4KHZfz0LGcn0zZnsmzlJFFePopGw=",
         "owner": "dwarfmaster",
         "repo": "arkenfox-nixos",
-        "rev": "57eefe49b80ea5e02f42199db531292de34a4350",
+        "rev": "e2acb9854f22a26cb59ce2f497d006468506454d",
         "type": "github"
       },
       "original": {
@@ -83,11 +83,11 @@
     },
     "crane": {
       "locked": {
-        "lastModified": 1743908961,
-        "narHash": "sha256-e1idZdpnnHWuosI3KsBgAgrhMR05T2oqskXCmNzGPq0=",
+        "lastModified": 1748047550,
+        "narHash": "sha256-t0qLLqb4C1rdtiY8IFRH5KIapTY/n3Lqt57AmxEv9mk=",
         "owner": "ipetkov",
         "repo": "crane",
-        "rev": "80ceeec0dc94ef967c371dcdc56adb280328f591",
+        "rev": "b718a78696060df6280196a6f992d04c87a16aef",
         "type": "github"
       },
       "original": {
@@ -123,11 +123,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1744145203,
-        "narHash": "sha256-I2oILRiJ6G+BOSjY+0dGrTPe080L3pbKpc+gCV3Nmyk=",
+        "lastModified": 1748225455,
+        "narHash": "sha256-AzlJCKaM4wbEyEpV3I/PUq5mHnib2ryEy32c+qfj6xk=",
         "owner": "nix-community",
         "repo": "disko",
-        "rev": "76c0a6dba345490508f36c1aa3c7ba5b6b460989",
+        "rev": "a894f2811e1ee8d10c50560551e50d6ab3c392ba",
         "type": "github"
       },
       "original": {
@@ -139,11 +139,11 @@
     "flake-compat": {
       "flake": false,
       "locked": {
-        "lastModified": 1733328505,
-        "narHash": "sha256-NeCCThCEP3eCl2l/+27kNNK7QrwZB1IJCrXfrbv5oqU=",
+        "lastModified": 1747046372,
+        "narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=",
         "owner": "edolstra",
         "repo": "flake-compat",
-        "rev": "ff81ac966bb2cae68946d5ed5fc4994f96d0ffec",
+        "rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885",
         "type": "github"
       },
       "original": {
@@ -192,32 +192,6 @@
         "type": "github"
       }
     },
-    "flake_version_update": {
-      "inputs": {
-        "flake-utils": [
-          "flake-utils"
-        ],
-        "nixpkgs": [
-          "nixpkgs"
-        ],
-        "systems": [
-          "systems"
-        ]
-      },
-      "locked": {
-        "lastModified": 1685288691,
-        "narHash": "sha256-oP6h34oJ8rm6KlUpyZrX+ww3hnoWny2ecrEXxkU7F3c=",
-        "ref": "refs/heads/prime",
-        "rev": "e9a97e01eca780bd16e1dbdbd8856b59558f4959",
-        "revCount": 5,
-        "type": "git",
-        "url": "https://codeberg.org/soispha/flake_version_update.git"
-      },
-      "original": {
-        "type": "git",
-        "url": "https://codeberg.org/soispha/flake_version_update.git"
-      }
-    },
     "git-hooks": {
       "inputs": {
         "flake-compat": [
@@ -231,11 +205,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1742649964,
-        "narHash": "sha256-DwOTp7nvfi8mRfuL1escHDXabVXFGT1VlPD1JHrtrco=",
+        "lastModified": 1747372754,
+        "narHash": "sha256-2Y53NGIX2vxfie1rOW0Qb86vjRZ7ngizoo+bnXU9D9k=",
         "owner": "cachix",
         "repo": "git-hooks.nix",
-        "rev": "dcf5072734cb576d2b0c59b2ac44f5050b5eac82",
+        "rev": "80479b6ec16fefd9c1db3ea13aeb038c60530f46",
         "type": "github"
       },
       "original": {
@@ -291,11 +265,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1744208565,
-        "narHash": "sha256-vG3JJOar/r8ognz7wuwMtOJ8Knu1MMlOzHB1N6R2MbY=",
+        "lastModified": 1748529677,
+        "narHash": "sha256-MJEX3Skt5EAIs/aGHD8/aXXZPcceMMHheyIGSjvxZN0=",
         "owner": "nix-community",
         "repo": "home-manager",
-        "rev": "542efdf2dfac351498f534eb71671525b9bd45ed",
+        "rev": "da282034f4d30e787b8a10722431e8b650a907ef",
         "type": "github"
       },
       "original": {
@@ -332,16 +306,16 @@
         ]
       },
       "locked": {
-        "lastModified": 1729958008,
-        "narHash": "sha256-EiOq8jF4Z/zQe0QYVc3+qSKxRK//CFHMB84aYrYGwEs=",
+        "lastModified": 1748294338,
+        "narHash": "sha256-FVO01jdmUNArzBS7NmaktLdGA5qA3lUMJ4B7a05Iynw=",
         "owner": "NuschtOS",
         "repo": "ixx",
-        "rev": "9fd01aad037f345350eab2cd45e1946cc66da4eb",
+        "rev": "cc5f390f7caf265461d4aab37e98d2292ebbdb85",
         "type": "github"
       },
       "original": {
         "owner": "NuschtOS",
-        "ref": "v0.0.6",
+        "ref": "v0.0.8",
         "repo": "ixx",
         "type": "github"
       }
@@ -405,11 +379,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1743496612,
-        "narHash": "sha256-emPWa5lmKbnyuj8c1mSJUkzJNT+iJoU9GMcXwjp2oVM=",
+        "lastModified": 1748352827,
+        "narHash": "sha256-sNUUP6qxGkK9hXgJ+p362dtWLgnIWwOCmiq72LAWtYo=",
         "owner": "lnl7",
         "repo": "nix-darwin",
-        "rev": "73d59580d01e9b9f957ba749f336a272869c42dd",
+        "rev": "44a7d0e687a87b73facfe94fba78d323a6686a90",
         "type": "github"
       },
       "original": {
@@ -446,11 +420,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1743911143,
-        "narHash": "sha256-4j4JPwr0TXHH4ZyorXN5yIcmqIQr0WYacsuPA4ktONo=",
+        "lastModified": 1748145500,
+        "narHash": "sha256-t9fx0l61WOxtWxXCqlXPWSuG/0XMF9DtE2T7KXgMqJw=",
         "owner": "nix-community",
         "repo": "nix-index-database",
-        "rev": "a36f6a7148aec2c77d78e4466215cceb2f5f4bfb",
+        "rev": "a98adbf54d663395df0b9929f6481d4d80fc8927",
         "type": "github"
       },
       "original": {
@@ -459,32 +433,6 @@
         "type": "github"
       }
     },
-    "nixVim": {
-      "inputs": {
-        "flake-parts": [
-          "flake-parts"
-        ],
-        "nixpkgs": [
-          "nixpkgs"
-        ],
-        "nuschtosSearch": [
-          "nuschtosSearch"
-        ]
-      },
-      "locked": {
-        "lastModified": 1744200902,
-        "narHash": "sha256-BqTLjxT1C1XfREDBQSxPrfKI9DBpZHBVLHzfXZs+h8M=",
-        "owner": "nix-community",
-        "repo": "nixvim",
-        "rev": "51203927e395535c4a427295efed4e1b2ef8349b",
-        "type": "github"
-      },
-      "original": {
-        "owner": "nix-community",
-        "repo": "nixvim",
-        "type": "github"
-      }
-    },
     "nixos-generators": {
       "inputs": {
         "nixlib": [
@@ -495,11 +443,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1742568034,
-        "narHash": "sha256-QaMEhcnscfF2MqB7flZr+sLJMMYZPnvqO4NYf9B4G38=",
+        "lastModified": 1747663185,
+        "narHash": "sha256-Obh50J+O9jhUM/FgXtI3he/QRNiV9+J53+l+RlKSaAk=",
         "owner": "nix-community",
         "repo": "nixos-generators",
-        "rev": "42ee229088490e3777ed7d1162cb9e9d8c3dbb11",
+        "rev": "ee07ba0d36c38e9915c55d2ac5a8fb0f05f2afcc",
         "type": "github"
       },
       "original": {
@@ -510,11 +458,11 @@
     },
     "nixpkgs": {
       "locked": {
-        "lastModified": 1744098102,
-        "narHash": "sha256-tzCdyIJj9AjysC3OuKA+tMD/kDEDAF9mICPDU7ix0JA=",
+        "lastModified": 1748370509,
+        "narHash": "sha256-QlL8slIgc16W5UaI3w7xHQEP+Qmv/6vSNTpoZrrSlbk=",
         "owner": "NixOS",
         "repo": "nixpkgs",
-        "rev": "c8cd81426f45942bb2906d5ed2fe21d2f19d95b7",
+        "rev": "4faa5f5321320e49a78ae7848582f684d64783e9",
         "type": "github"
       },
       "original": {
@@ -526,11 +474,11 @@
     },
     "nixpkgs-lib": {
       "locked": {
-        "lastModified": 1743901752,
-        "narHash": "sha256-WKv9xikcdKm0VWOnhttJ6dAxorQJDjJCfIsjrP00ip4=",
+        "lastModified": 1748135671,
+        "narHash": "sha256-PIkcBpddXRAGWstWV7zTwRZ9EAPqgzFNssux17p1NTg=",
         "owner": "nix-community",
         "repo": "nixpkgs.lib",
-        "rev": "2bb0af21f02e8c61a5dded3832b92db47d6a0411",
+        "rev": "6194ba204e5b188965da97ebb16e05191e560427",
         "type": "github"
       },
       "original": {
@@ -541,20 +489,49 @@
     },
     "nixpkgs-stable": {
       "locked": {
-        "lastModified": 1743975612,
-        "narHash": "sha256-o4FjFOUmjSRMK7dn0TFdAT0RRWUWD+WsspPHa+qEQT8=",
+        "lastModified": 1748437600,
+        "narHash": "sha256-hYKMs3ilp09anGO7xzfGs3JqEgUqFMnZ8GMAqI6/k04=",
         "owner": "NixOS",
         "repo": "nixpkgs",
-        "rev": "a880f49904d68b5e53338d1e8c7bf80f59903928",
+        "rev": "7282cb574e0607e65224d33be8241eae7cfe0979",
         "type": "github"
       },
       "original": {
         "owner": "NixOS",
-        "ref": "nixos-24.11",
+        "ref": "nixos-25.05",
         "repo": "nixpkgs",
         "type": "github"
       }
     },
+    "nixvim": {
+      "inputs": {
+        "flake-parts": [
+          "flake-parts"
+        ],
+        "nixpkgs": [
+          "nixpkgs"
+        ],
+        "nuschtosSearch": [
+          "nuschtosSearch"
+        ],
+        "systems": [
+          "systems"
+        ]
+      },
+      "locked": {
+        "lastModified": 1748521000,
+        "narHash": "sha256-EnXH5PIrZBoe8U09hPQr2kOuPTZSqAJy78DqUVLmWXg=",
+        "owner": "nix-community",
+        "repo": "nixvim",
+        "rev": "a9e45072d82374dd3f0d971795e7d7f99e5bc6c2",
+        "type": "github"
+      },
+      "original": {
+        "owner": "nix-community",
+        "repo": "nixvim",
+        "type": "github"
+      }
+    },
     "nuschtosSearch": {
       "inputs": {
         "flake-utils": [
@@ -566,11 +543,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1743683223,
-        "narHash": "sha256-LdXtHFvhEC3S64dphap1pkkzwjErbW65eH1VRerCUT0=",
+        "lastModified": 1748298102,
+        "narHash": "sha256-PP11GVwUt7F4ZZi5A5+99isuq39C59CKc5u5yVisU/U=",
         "owner": "NuschtOS",
         "repo": "search",
-        "rev": "56a49ffef2908dad1e9a8adef1f18802bc760962",
+        "rev": "f8a1c221afb8b4c642ed11ac5ee6746b0fe1d32f",
         "type": "github"
       },
       "original": {
@@ -622,11 +599,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1742649964,
-        "narHash": "sha256-DwOTp7nvfi8mRfuL1escHDXabVXFGT1VlPD1JHrtrco=",
+        "lastModified": 1747372754,
+        "narHash": "sha256-2Y53NGIX2vxfie1rOW0Qb86vjRZ7ngizoo+bnXU9D9k=",
         "owner": "cachix",
         "repo": "pre-commit-hooks.nix",
-        "rev": "dcf5072734cb576d2b0c59b2ac44f5050b5eac82",
+        "rev": "80479b6ec16fefd9c1db3ea13aeb038c60530f46",
         "type": "github"
       },
       "original": {
@@ -665,38 +642,6 @@
         "url": "https://git.foss-syndicate.org/bpeetz/qmk_layout.git"
       }
     },
-    "ragenix": {
-      "inputs": {
-        "agenix": [
-          "agenix"
-        ],
-        "crane": [
-          "crane"
-        ],
-        "flake-utils": [
-          "flake-utils"
-        ],
-        "nixpkgs": [
-          "nixpkgs"
-        ],
-        "rust-overlay": [
-          "rust-overlay"
-        ]
-      },
-      "locked": {
-        "lastModified": 1741508717,
-        "narHash": "sha256-iQf1WdNxaApOFHIx4RLMRZ4f8g+8Xp0Z1/E/Mz2rLxY=",
-        "owner": "yaxitech",
-        "repo": "ragenix",
-        "rev": "2a2bea99d74927e54adf53cbf113219def67d5c9",
-        "type": "github"
-      },
-      "original": {
-        "owner": "yaxitech",
-        "repo": "ragenix",
-        "type": "github"
-      }
-    },
     "root": {
       "inputs": {
         "agenix": "agenix",
@@ -708,7 +653,6 @@
         "flake-compat": "flake-compat",
         "flake-parts": "flake-parts",
         "flake-utils": "flake-utils",
-        "flake_version_update": "flake_version_update",
         "git-hooks": "git-hooks",
         "gitignore": "gitignore",
         "haumea": "haumea",
@@ -718,19 +662,17 @@
         "library": "library",
         "nix-darwin": "nix-darwin",
         "nix-index-database": "nix-index-database",
-        "nixVim": "nixVim",
         "nixos-generators": "nixos-generators",
         "nixpkgs": "nixpkgs",
         "nixpkgs-lib": "nixpkgs-lib",
         "nixpkgs-stable": "nixpkgs-stable",
+        "nixvim": "nixvim",
         "nuschtosSearch": "nuschtosSearch",
         "poetry2nix": "poetry2nix",
         "pre-commit-hooks": "pre-commit-hooks",
         "qmk_firmware": "qmk_firmware",
-        "ragenix": "ragenix",
         "rust-overlay": "rust-overlay",
         "serverphone": "serverphone",
-        "shell_library": "shell_library",
         "systems": "systems",
         "templates": "templates",
         "treefmt-nix": "treefmt-nix"
@@ -743,11 +685,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1744166053,
-        "narHash": "sha256-mpI7OzFwp+fUeDtZYQbVZ2YmtxTN2UNrrOwbYD27xKU=",
+        "lastModified": 1748486227,
+        "narHash": "sha256-veMuFa9cq/XgUXp1S57oC8K0TIw3XyZWL2jIyGWlW0c=",
         "owner": "oxalica",
         "repo": "rust-overlay",
-        "rev": "896158be1835589db6f42f45ef0a49b8b492cc66",
+        "rev": "4bf1892eb81113e868efe67982b64f1da15c8c5a",
         "type": "github"
       },
       "original": {
@@ -791,35 +733,6 @@
         "url": "https://codeberg.org/vhack.eu/serverphone.git"
       }
     },
-    "shell_library": {
-      "inputs": {
-        "flake-utils": [
-          "flake-utils"
-        ],
-        "flake_version_update": [
-          "flake_version_update"
-        ],
-        "nixpkgs": [
-          "nixpkgs"
-        ],
-        "systems": [
-          "systems"
-        ]
-      },
-      "locked": {
-        "lastModified": 1710519017,
-        "narHash": "sha256-7C7onkhZiLwzrrf9XfzHEOjht9FmZfGABPbzE8XOYoI=",
-        "ref": "refs/heads/prime",
-        "rev": "24713f56f30e755553cac9497258ebc5d73036dc",
-        "revCount": 180,
-        "type": "git",
-        "url": "https://codeberg.org/soispha/shell_library.git"
-      },
-      "original": {
-        "type": "git",
-        "url": "https://codeberg.org/soispha/shell_library.git"
-      }
-    },
     "systems": {
       "locked": {
         "lastModified": 1680978846,
@@ -871,11 +784,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1743748085,
-        "narHash": "sha256-uhjnlaVTWo5iD3LXics1rp9gaKgDRQj6660+gbUU3cE=",
+        "lastModified": 1748243702,
+        "narHash": "sha256-9YzfeN8CB6SzNPyPm2XjRRqSixDopTapaRsnTpXUEY8=",
         "owner": "numtide",
         "repo": "treefmt-nix",
-        "rev": "815e4121d6a5d504c0f96e5be2dd7f871e4fd99d",
+        "rev": "1f3f7b784643d488ba4bf315638b2b0a4c5fb007",
         "type": "github"
       },
       "original": {
diff --git a/flake.lock.license b/flake.lock.license
new file mode 100644
index 00000000..eae6a84c
--- /dev/null
+++ b/flake.lock.license
@@ -0,0 +1,9 @@
+nixos-config - My current NixOS configuration
+
+Copyright (C) 2025 Benedikt Peetz <benedikt.peetz@b-peetz.de>
+SPDX-License-Identifier: GPL-3.0-or-later
+
+This file is part of my nixos-config.
+
+You should have received a copy of the License along with this program.
+If not, see <https://www.gnu.org/licenses/gpl-3.0.txt>.
diff --git a/flake.nix b/flake.nix
index 220095aa..47b1b569 100644
--- a/flake.nix
+++ b/flake.nix
@@ -1,12 +1,19 @@
-# Copyright (C) 2024 Benedikt Peetz <benedikt.peetz@b-peetz.de>
+# nixos-config - My current NixOS configuration
 #
+# Copyright (C) 2024 Benedikt Peetz <benedikt.peetz@b-peetz.de>
+# Copyright (C) 2025 Benedikt Peetz <benedikt.peetz@b-peetz.de>
 # SPDX-License-Identifier: GPL-3.0-or-later
+#
+# This file is part of my nixos-config.
+#
+# You should have received a copy of the License along with this program.
+# If not, see <https://www.gnu.org/licenses/gpl-3.0.txt>.
 {
   description = "A NixOS System Configuration";
 
   inputs = {
     # base
-    nixpkgs-stable.url = "github:NixOS/nixpkgs/nixos-24.11";
+    nixpkgs-stable.url = "github:NixOS/nixpkgs/nixos-25.05";
     nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
 
     # open nixpkgs prs
@@ -112,14 +119,6 @@
         nixpkgs.follows = "nixpkgs";
       };
     };
-    flake_version_update = {
-      url = "git+https://codeberg.org/soispha/flake_version_update.git";
-      inputs = {
-        systems.follows = "systems";
-        nixpkgs.follows = "nixpkgs";
-        flake-utils.follows = "flake-utils";
-      };
-    };
 
     # nixos modules
     home-manager = {
@@ -134,12 +133,13 @@
         nixpkgs.follows = "nixpkgs";
       };
     };
-    nixVim = {
+    nixvim = {
       url = "github:nix-community/nixvim";
       inputs = {
         flake-parts.follows = "flake-parts";
         nixpkgs.follows = "nixpkgs";
         nuschtosSearch.follows = "nuschtosSearch";
+        systems.follows = "systems";
       };
     };
     agenix = {
@@ -151,16 +151,6 @@
         systems.follows = "systems";
       };
     };
-    ragenix = {
-      url = "github:yaxitech/ragenix";
-      inputs = {
-        nixpkgs.follows = "nixpkgs";
-        agenix.follows = "agenix";
-        flake-utils.follows = "flake-utils";
-        rust-overlay.follows = "rust-overlay";
-        crane.follows = "crane";
-      };
-    };
     impermanence = {
       url = "github:nix-community/impermanence";
       inputs = {
@@ -222,15 +212,6 @@
     };
 
     # my bins
-    shell_library = {
-      url = "git+https://codeberg.org/soispha/shell_library.git";
-      inputs = {
-        nixpkgs.follows = "nixpkgs";
-        flake-utils.follows = "flake-utils";
-        systems.follows = "systems";
-        flake_version_update.follows = "flake_version_update";
-      };
-    };
     qmk_firmware = {
       url = "git+https://git.foss-syndicate.org/bpeetz/qmk_layout.git?ref=prime";
       inputs = {
@@ -261,71 +242,79 @@
     nixos-generators,
     impermanence,
     agenix,
-    ragenix,
     serverphone,
     disko,
     lanzaboote,
-    nixVim,
+    nixvim,
     nix-index-database,
     arkenfox-nixos,
     # external dependencies
     treefmt-nix,
     templates,
     # my binaries
-    shell_library,
     qmk_firmware,
     ...
   }: let
     system = "x86_64-linux";
-    sysLib = shell_library.lib.${system};
-
-    baseLib = import ./lib {inherit (pkgs) lib;};
 
-    inherit (library) nixLib;
+    packageSets = rec {
+      stable = nixpkgs-stable.legacyPackages.${system};
+      unstable = nixpkgs.legacyPackages.${system};
 
-    pkgsStable = nixpkgs-stable.legacyPackages.${system};
-    pkgs = nixpkgs.legacyPackages.${system};
-    myPkgs = import ./pkgs {
-      inherit pkgs nixLib;
+      soispha = import ./pkgs {
+        inherit libraries;
+        pkgs = unstable;
+      };
     };
 
-    nixpkgs_as_input = nixpkgs;
-    nixpkgs_open_prs = {
+    libraries = rec {
+      nix = packageSets.unstable.lib;
+      base = import ./lib {lib = nix;};
+      extra = library.nixLib;
     };
 
-    outputs = import ./flake {
+    modules = {
       inherit
-        # core
-        self
-        pkgs
-        pkgsStable
-        nixLib
-        myPkgs
-        system
-        sysLib
-        baseLib
-        nixpkgs_as_input
-        nixpkgs_open_prs
-        # modules
         home-manager
-        nixVim
+        nixvim
         nixos-generators
         impermanence
         agenix
-        ragenix
         serverphone
         disko
         lanzaboote
         nix-index-database
         arkenfox-nixos
-        # external dependencies
+        ;
+    };
+
+    externalDependencies = {
+      inherit
         treefmt-nix
         templates
-        # my binaries
-        shell_library
+        ;
+    };
+
+    externalBinaries = {
+      inherit
         qmk_firmware
         ;
     };
+
+    openPRsNixpkgs = {};
+
+    outputs = import ./flake {
+      inherit
+        self
+        system
+        openPRsNixpkgs
+        packageSets
+        libraries
+        modules
+        externalDependencies
+        externalBinaries
+        ;
+    };
   in
     outputs;
 }
diff --git a/flake/apps/default.nix b/flake/apps/default.nix
deleted file mode 100644
index f1709c71..00000000
--- a/flake/apps/default.nix
+++ /dev/null
@@ -1,23 +0,0 @@
-{
-  self,
-  system,
-  ...
-}: {
-  install = {
-    type = "app";
-    program = "${self.packages."${system}".install}/bin/install";
-  };
-  activate = {
-    type = "app";
-    program = "${self.packages."${system}".activate}/bin/activate";
-  };
-  setup = {
-    type = "app";
-    program = "${self.packages."${system}".setup}/bin/setup";
-  };
-  config_setup = {
-    type = "app";
-    program = "${self.packages."${system}".config_setup}/bin/config_setup";
-  };
-  default = self.apps."${system}".activate;
-}
diff --git a/flake/default.nix b/flake/default.nix
index ae17ad39..1170efa3 100644
--- a/flake/default.nix
+++ b/flake/default.nix
@@ -1,80 +1,58 @@
+# nixos-config - My current NixOS configuration
+#
+# Copyright (C) 2025 Benedikt Peetz <benedikt.peetz@b-peetz.de>
+# SPDX-License-Identifier: GPL-3.0-or-later
+#
+# This file is part of my nixos-config.
+#
+# You should have received a copy of the License along with this program.
+# If not, see <https://www.gnu.org/licenses/gpl-3.0.txt>.
 {
-  # core
   self,
-  pkgs,
-  pkgsStable,
-  nixLib,
-  baseLib,
-  myPkgs,
   system,
-  sysLib,
-  nixpkgs_as_input,
-  nixpkgs_open_prs,
-  # modules
-  home-manager,
-  nixVim,
-  nixos-generators,
-  impermanence,
-  agenix,
-  ragenix,
-  serverphone,
-  disko,
-  lanzaboote,
-  nix-index-database,
-  arkenfox-nixos,
-  # external dependencies
-  treefmt-nix,
-  templates,
-  # my binaries
-  shell_library,
-  qmk_firmware,
+  openPRsNixpkgs,
+  packageSets,
+  libraries,
+  modules,
+  externalDependencies,
+  externalBinaries,
 }: let
-  treefmtEval = import ./treefmt.nix {inherit treefmt-nix pkgs;};
+  # Unpack common stuff.
+  nixLib = libraries.extra;
+  pkgs = packageSets.unstable;
 
-  nixosConfigurations = import ./nixosConfigurations {
+  treefmtEval = import ./treefmt.nix {
+    inherit (externalDependencies) treefmt-nix;
+    inherit pkgs;
+  };
+
+  nixosConfigurations = import ../hosts {
     inherit
       self
-      pkgsStable
-      myPkgs
       system
-      nixpkgs_as_input
-      nixpkgs_open_prs
-      # my things
-      shell_library
-      sysLib
-      nixLib
-      baseLib
-      templates
-      # modules
-      home-manager
-      nixVim
-      nixos-generators
-      impermanence
-      agenix
-      ragenix
-      serverphone
-      disko
-      lanzaboote
-      nix-index-database
-      arkenfox-nixos
-      # bins
-      qmk_firmware
+      openPRsNixpkgs
+      packageSets
+      libraries
+      modules
+      externalDependencies
+      externalBinaries
       ;
   };
 
   tests = import ../tests {
-    inherit pkgs nixpkgs_as_input myPkgs sysLib nixLib nixpkgs_open_prs system;
+    inherit pkgs nixLib openPRsNixpkgs system;
+    myPkgs = packageSets.soispha;
     inherit (pkgs) lib;
     extraModules = {
       nixvim = {
-        homeManagerModule = nixVim.homeManagerModules.nixvim;
+        homeManagerModule = modules.nixVim.homeManagerModules.nixvim;
       };
-      agenix = agenix.nixosModules.default;
-      disko = disko.nixosModules.default;
-      serverphone = serverphone.nixosModules.default;
-      inherit (home-manager.nixosModules) home-manager;
-      inherit (impermanence.nixosModules) impermanence;
-      inherit (lanzaboote.nixosModules) lanzaboote;
+      agenix = modules.agenix.nixosModules.default;
+      disko = modules.disko.nixosModules.default;
+      serverphone = modules.serverphone.nixosModules.default;
+      inherit (modules.home-manager.nixosModules) home-manager;
+      inherit (modules.impermanence.nixosModules) impermanence;
+      inherit (modules.lanzaboote.nixosModules) lanzaboote;
     };
   };
 in {
@@ -93,24 +71,15 @@ in {
 
   packages."${system}" = import ./packages {
     inherit
-      nixos-generators
       pkgs
-      pkgsStable
-      myPkgs
-      sysLib
-      system
-      nixVim
       self
-      shell_library
       ;
-    inherit (pkgs) lib;
+    myPkgs = packageSets.soispha;
   };
 
   formatter."${system}" = treefmtEval.config.build.wrapper;
 
-  baseLib."${system}" = baseLib;
-
-  apps."${system}" = import ./apps {inherit self system;};
+  baseLib."${system}" = libraries.base;
 
   devShells."${system}" = {
     default = pkgs.mkShell {
@@ -121,9 +90,10 @@ in {
         # other
         pkgs.cocogitto
         pkgs.git-bug
+        pkgs.reuse
 
         # secrets
-        ragenix.packages."${system}".default
+        pkgs.ragenix
         pkgs.rage
 
         # shell
@@ -138,8 +108,8 @@ in {
         pkgs.deadnix
 
         # update
-        myPkgs.generate_moz_extension # needed for the firefox extension update script
-        myPkgs.lf-make-map # needed to generate the lf cd mappings
+        packageSets.soispha.generate_moz_extension # needed for the firefox extension update script
+        packageSets.soispha.lf-make-map # needed to generate the lf cd mappings
       ];
     };
   };
diff --git a/flake/nixosConfigurations/default.nix b/flake/nixosConfigurations/default.nix
deleted file mode 100644
index 1831cd1b..00000000
--- a/flake/nixosConfigurations/default.nix
+++ /dev/null
@@ -1,86 +0,0 @@
-{
-  self,
-  system,
-  pkgsStable,
-  myPkgs,
-  nixpkgs_as_input,
-  nixpkgs_open_prs,
-  # my things
-  shell_library,
-  sysLib,
-  nixLib,
-  baseLib,
-  templates,
-  # modules
-  home-manager,
-  nixVim,
-  nixos-generators,
-  impermanence,
-  agenix,
-  ragenix,
-  serverphone,
-  disko,
-  lanzaboote,
-  nix-index-database,
-  arkenfox-nixos,
-  # bins
-  qmk_firmware,
-}: let
-  modules = [
-    agenix.nixosModules.default
-    disko.nixosModules.default
-    home-manager.nixosModules.home-manager
-    impermanence.nixosModules.impermanence
-    lanzaboote.nixosModules.lanzaboote
-    serverphone.nixosModules.default
-
-    ../../modules
-    ../../modules/common
-  ];
-
-  specialArgs = {
-    inherit
-      # extra package sources
-      nixpkgs_open_prs
-      pkgsStable
-      myPkgs
-      shell_library
-      sysLib
-      nixLib
-      baseLib
-      # extra information
-      system
-      # modules
-      impermanence
-      nix-index-database
-      nixVim
-      arkenfox-nixos
-      # nix registry
-      nixpkgs_as_input
-      self
-      templates
-      # bins
-      # TODO: Integrate these into `pkgs/by-name` <2024-05-22>
-      qmk_firmware
-      serverphone
-      ;
-  };
-
-  generateHost = name: {
-    name = "${name}";
-    value = nixpkgs_as_input.lib.nixosSystem {
-      inherit specialArgs;
-      modules =
-        [
-          ../../hosts/${name}
-        ]
-        ++ modules;
-    };
-  };
-
-  # FIXME: These need to stay in this position for the install script
-  hosts = ["tiamat" "apzu"];
-
-  generatedHosts = builtins.listToAttrs (builtins.map generateHost hosts);
-in
-  generatedHosts
diff --git a/flake/packages/default.nix b/flake/packages/default.nix
index 95aa539a..9c67eda3 100644
--- a/flake/packages/default.nix
+++ b/flake/packages/default.nix
@@ -1,16 +1,19 @@
+# nixos-config - My current NixOS configuration
+#
+# Copyright (C) 2025 Benedikt Peetz <benedikt.peetz@b-peetz.de>
+# SPDX-License-Identifier: GPL-3.0-or-later
+#
+# This file is part of my nixos-config.
+#
+# You should have received a copy of the License along with this program.
+# If not, see <https://www.gnu.org/licenses/gpl-3.0.txt>.
 {
-  self,
-  nixos-generators,
   pkgs,
+  self,
   myPkgs,
-  pkgsStable,
-  sysLib,
-  system,
-  shell_library,
   ...
 }: let
   inherit (pkgs) lib;
-  output = import ../../bootstrap {inherit pkgs sysLib;};
 
   run_test_description = pkgs.callPackage ../../tests/infrastructure/run.nix {};
 
@@ -77,8 +80,6 @@ in
     #   format = "install-iso";
     # };
 
-    update_shell_lib = shell_library.packages."${system}".update_shell_library;
-
     # gpg-iso = nixos-generators.nixosGenerate {
     #   system = "x86_64-linux";
     #   specialArgs = defaultSpecialArgs;
@@ -92,6 +93,5 @@ in
     nvim = nvim.tiamat;
     inherit run_test_description;
   }
-  // output
   // output_neovim
   // myPkgsFlat
diff --git a/flake/treefmt.nix b/flake/treefmt.nix
index e2c6aeae..703a85e8 100644
--- a/flake/treefmt.nix
+++ b/flake/treefmt.nix
@@ -1,3 +1,12 @@
+# nixos-config - My current NixOS configuration
+#
+# Copyright (C) 2025 Benedikt Peetz <benedikt.peetz@b-peetz.de>
+# SPDX-License-Identifier: GPL-3.0-or-later
+#
+# This file is part of my nixos-config.
+#
+# You should have received a copy of the License along with this program.
+# If not, see <https://www.gnu.org/licenses/gpl-3.0.txt>.
 {
   treefmt-nix,
   pkgs,