diff options
Diffstat (limited to '')
-rw-r--r-- | flake.nix | 62 | ||||
-rw-r--r-- | flake/default.nix | 105 | ||||
-rw-r--r-- | flake/nixosConfigurations/default.nix | 95 | ||||
-rw-r--r-- | flake/packages/default.nix | 9 | ||||
-rw-r--r-- | modules/by-name/ni/nix/module.nix | 9 | ||||
-rw-r--r-- | modules/by-name/ni/nixpkgs/config.nix | 4 | ||||
-rw-r--r-- | modules/by-name/ni/nixpkgs/module.nix | 35 | ||||
-rw-r--r-- | modules/by-name/ri/river/module.nix | 4 | ||||
-rw-r--r-- | modules/default.nix | 4 | ||||
-rw-r--r-- | modules/home.legacy/default.nix | 12 |
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? |