{ description = "grimmauld-nixos"; inputs = { nixpkgs = { url = "github:NixOS/nixpkgs/nixos-unstable"; # url = "git+file:///home/grimmauld/coding/nixpkgs"; }; chaotic = { url = "github:chaotic-cx/nyx/nyxpkgs-unstable"; inputs.nixpkgs.follows = "nixpkgs"; }; agenix = { url = "github:ryantm/agenix"; inputs.nixpkgs.follows = "nixpkgs"; }; nixos-mailserver = { url = "gitlab:simple-nixos-mailserver/nixos-mailserver/master"; inputs.nixpkgs.follows = "nixpkgs"; }; nixos-matrix-modules = { url = "github:dali99/nixos-matrix-modules"; inputs.nixpkgs.follows = "nixpkgs"; }; # ranger_udisk_menu.url = "git+https://git.grimmauld.de/Grimmauld/ranger_udisk_menu"; # glibc-eac.url = "github:Frogging-Family/glibc-eac"; aagl-gtk-on-nix = { url = "github:ezKEa/aagl-gtk-on-nix"; inputs.nixpkgs.follows = "nixpkgs"; }; aa-alias-manager = { url = "github:LordGrimmauld/aa-alias-manager"; inputs.nixpkgs.follows = "nixpkgs"; }; }; outputs = inputs@{ self, agenix, nixpkgs, chaotic, aagl-gtk-on-nix, nixos-mailserver, nixos-matrix-modules, aa-alias-manager, ... }: let patches = [ ./aa_mod.patch { url = "https://github.com/NixOS/nixpkgs/pull/357468.patch"; hash = "sha256-t+/zVO/Jyink9biD61AuDOmVt0GF3biKxR5hCAyl4Fc="; } ]; customNixosSystem = system: definitions: let unpatched = nixpkgs.legacyPackages.${system}; patched = unpatched.applyPatches { name = "nixpkgs-patched"; src = inputs.nixpkgs; patches = map (p: if (builtins.isPath p) then p else (unpatched.fetchpatch p)) patches; }; nixosSystem = import (patched + "/nixos/lib/eval-config.nix"); in nixosSystem ( { inherit system; specialArgs = { inherit inputs system; }; } // definitions ); systems = [ "x86_64-linux" "aarch64-linux" ]; forAllSystems = f: nixpkgs.lib.genAttrs systems (system: f system); in { formatter = forAllSystems (system: nixpkgs.legacyPackages.${system}.nixfmt-rfc-style); nixosConfigurations = { grimmauld-nixos = customNixosSystem "x86_64-linux" { modules = [ agenix.nixosModules.default chaotic.nixosModules.default aagl-gtk-on-nix.nixosModules.default ./configuration.nix ./specific/grimm-nixos-laptop/configuration.nix ]; }; grimm-nixos-ssd = customNixosSystem "x86_64-linux" { modules = [ agenix.nixosModules.default chaotic.nixosModules.default aagl-gtk-on-nix.nixosModules.default ./configuration.nix aa-alias-manager.nixosModules.default ./specific/grimm-nixos-ssd/configuration.nix ]; }; grimmauld-nixos-server = customNixosSystem "x86_64-linux" { modules = [ agenix.nixosModules.default nixos-matrix-modules.nixosModules.default nixos-mailserver.nixosModules.default ./configuration.nix ./specific/grimmauld-nixos-server/configuration.nix ./modules ]; }; }; }; }