about summary refs log tree commit diff stats
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--flake.nix62
-rw-r--r--flake/default.nix105
-rw-r--r--flake/nixosConfigurations/default.nix95
-rw-r--r--flake/packages/default.nix9
-rw-r--r--modules/by-name/ni/nix/module.nix9
-rw-r--r--modules/by-name/ni/nixpkgs/config.nix4
-rw-r--r--modules/by-name/ni/nixpkgs/module.nix35
-rw-r--r--modules/by-name/ri/river/module.nix4
-rw-r--r--modules/default.nix4
-rw-r--r--modules/home.legacy/default.nix12
10 files changed, 116 insertions, 223 deletions
diff --git a/flake.nix b/flake.nix
index 7e8afc06..72b55d50 100644
--- a/flake.nix
+++ b/flake.nix
@@ -256,34 +256,24 @@
   }: let
     system = "x86_64-linux";
 
-    baseLib = import ./lib {inherit (pkgs) lib;};
+    packageSets = rec {
+      stable = nixpkgs-stable.legacyPackages.${system};
+      unstable = nixpkgs.legacyPackages.${system};
 
-    inherit (library) nixLib;
-
-    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
         nixos-generators
@@ -294,14 +284,36 @@
         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/default.nix b/flake/default.nix
index 0c4c0cd7..1170efa3 100644
--- a/flake/default.nix
+++ b/flake/default.nix
@@ -8,81 +8,51 @@
 # 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,
-  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 {
@@ -101,22 +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;
+  baseLib."${system}" = libraries.base;
 
   devShells."${system}" = {
     default = pkgs.mkShell {
@@ -145,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 c4fa2f40..00000000
--- a/flake/nixosConfigurations/default.nix
+++ /dev/null
@@ -1,95 +0,0 @@
-# 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,
-  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 89c7c4f6..9c67eda3 100644
--- a/flake/packages/default.nix
+++ b/flake/packages/default.nix
@@ -8,14 +8,9 @@
 # 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;
@@ -85,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;
diff --git a/modules/by-name/ni/nix/module.nix b/modules/by-name/ni/nix/module.nix
index 29ba4080..0072164f 100644
--- a/modules/by-name/ni/nix/module.nix
+++ b/modules/by-name/ni/nix/module.nix
@@ -10,10 +10,9 @@
 {
   pkgs,
   # flakes
-  nixpkgs_as_input,
-  templates,
   self,
   system,
+  externalDependencies,
   ...
 }: {
   # TODO(@bpeetz): Modularize <2025-02-08>
@@ -25,9 +24,9 @@
     channel.enable = false;
 
     registry = {
-      nixpkgs.flake = nixpkgs_as_input;
+      nixpkgs.flake = self.inputs.nixpkgs;
       n.flake =
-        nixpkgs_as_input
+        self.inputs.nixpkgs
         // {
           # Otherwise nixpkgs's config and overlays are not available:
 
@@ -36,7 +35,7 @@
           legacyPackages."${system}" = pkgs;
         };
 
-      t.flake = templates;
+      t.flake = externalDependencies.templates;
 
       my_flake.flake = self;
       m.flake = self;
diff --git a/modules/by-name/ni/nixpkgs/config.nix b/modules/by-name/ni/nixpkgs/config.nix
index 0d99336c..ea8f3c45 100644
--- a/modules/by-name/ni/nixpkgs/config.nix
+++ b/modules/by-name/ni/nixpkgs/config.nix
@@ -9,11 +9,11 @@
 # If not, see <https://www.gnu.org/licenses/gpl-3.0.txt>.
 {
   cfg,
-  myPkgs,
   lib,
+  packageSets,
   ...
 }: let
-  myPkgsOverlay = self: super: myPkgs;
+  myPkgsOverlay = self: super: packageSets.soispha;
 in {
   nixpkgs = {
     hostPlatform = cfg.systemName;
diff --git a/modules/by-name/ni/nixpkgs/module.nix b/modules/by-name/ni/nixpkgs/module.nix
index 07beae3e..fcde9505 100644
--- a/modules/by-name/ni/nixpkgs/module.nix
+++ b/modules/by-name/ni/nixpkgs/module.nix
@@ -10,8 +10,9 @@
 {
   lib,
   config,
+  packageSets,
   ...
-} @ args: let
+}: let
   cfg = config.soispha.nixpkgs;
 in {
   options.soispha.nixpkgs = {
@@ -22,5 +23,35 @@ in {
       type = lib.types.str;
     };
   };
-  config = lib.mkIf cfg.enable (import ./config.nix (args // {inherit cfg;}));
+  config = let
+    myPkgsOverlay = self: super: packageSets.soispha;
+  in
+    lib.mkIf cfg.enable
+    {
+      nixpkgs = {
+        hostPlatform = cfg.systemName;
+
+        overlays = [
+          myPkgsOverlay
+        ];
+
+        config = {
+          # TODO: this fails because of the root tempsize, which should be increased
+          # contentAddressedByDefault = true;
+
+          hostSystem = cfg.systemName;
+
+          allowUnfreePredicate = pkg:
+            builtins.elem (lib.getName pkg) [
+              "pypemicro" # required by pynitrokey
+
+              # TODO(@bpeetz): Allow moving them to their respective module. <2025-04-25>
+              "steam"
+              "steam-unwrapped"
+              "steam-original"
+              "steam-run"
+            ];
+        };
+      };
+    };
 }
diff --git a/modules/by-name/ri/river/module.nix b/modules/by-name/ri/river/module.nix
index 63e25f62..33c8a713 100644
--- a/modules/by-name/ri/river/module.nix
+++ b/modules/by-name/ri/river/module.nix
@@ -10,9 +10,9 @@
 {
   config,
   lib,
-  qmk_firmware,
   system,
   pkgs,
+  externalBinaries,
   ...
 }: let
   cfg = config.soispha.programs.river;
@@ -176,7 +176,7 @@ in {
   };
 
   config = lib.mkIf cfg.enable {
-    services.udev.packages = lib.mkIf cfg.unicodeInput.enable [qmk_firmware.packages.${system}.qmk_unicode_type];
+    services.udev.packages = lib.mkIf cfg.unicodeInput.enable [externalBinaries.qmk_firmware.packages.${system}.qmk_unicode_type];
 
     home-manager.users.soispha = {
       home.sessionVariables = {
diff --git a/modules/default.nix b/modules/default.nix
index 541a3663..ef885a21 100644
--- a/modules/default.nix
+++ b/modules/default.nix
@@ -9,10 +9,10 @@
 # If not, see <https://www.gnu.org/licenses/gpl-3.0.txt>.
 # NOTE: This file **must** not depend on `pkgs`. This is because `pkgs` is defined in a
 # module imported by it, and thus would require infinite recursion.  <2024-10-18>
-{nixLib, ...}: let
+{libraries, ...}: let
   files =
     builtins.attrValues
-    (nixLib.mkByName {
+    (libraries.extra.mkByName {
       baseDirectory = ./by-name;
       fileName = "module.nix";
       finalizeFunction = name: value: value;
diff --git a/modules/home.legacy/default.nix b/modules/home.legacy/default.nix
index fed2ecf6..fd543661 100644
--- a/modules/home.legacy/default.nix
+++ b/modules/home.legacy/default.nix
@@ -7,13 +7,7 @@
 #
 # 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>.
-{
-  nixVim,
-  nix-index-database,
-  arkenfox-nixos,
-  config,
-  ...
-}: let
+{config, ...}: let
   inherit (config.home) homeDirectory;
 
   # xdg
@@ -28,10 +22,6 @@ in {
     ./conf
     ./files
     ./pkgs
-
-    nixVim.homeManagerModules.nixvim
-    nix-index-database.hmModules.nix-index
-    arkenfox-nixos.hmModules.arkenfox
   ];
 
   # I don't know what this does, but I've seen it a lot online, so it should be good, right?