aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-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?