{ nixConfig = { experimental-features = "nix-command flakes"; substitute = "true"; extra-substituters = "https://cache.nixos.org https://nixpkgs-wayland.cachix.org https://nix-community.cachix.org https://nixpkgs-update.cachix.org https://colmena.cachix.org"; extra-trusted-public-keys = "cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY= nixpkgs-wayland.cachix.org-1:3lwxaILxMRkVhehr5StQprHdEo4IrE8sRho9R9HOLYA= nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs= nixpkgs-update.cachix.org-1:6y6Z2JdoL3APdu6/+Iy8eZX2ajf09e4EE9SnxSML1W8= colmena.cachix.org-1:7BzpDnjjH8ki2CT3f6GdOk7QAzPOl+1t3LvTLXqYcSg="; cores = 0; max-jobs = 8; netrc-file = "/home/thehedgehog/.netrc"; }; description = "The Hedgehog's Nix config with flakes"; inputs = { nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable"; nixos-unstable.url = "github:nixos/nixpkgs/nixos-unstable"; espanso-nixpkgs.url = "github:thehedgehog0/nixpkgs/espanso-update-2.1.8"; agenix.url = "github:ryantm/agenix"; agenix.inputs.nixpkgs.follows = "nixpkgs"; alejandra.url = "github:kamadorueda/alejandra"; alejandra.inputs.nixpkgs.follows = "nixpkgs"; colmena.url = "github:zhaofengli/colmena"; dns.url = "github:kirelagin/dns.nix"; dns.inputs.nixpkgs.follows = "nixpkgs"; doom-emacs.url = "github:nix-community/nix-doom-emacs"; doom-emacs.inputs.nixpkgs.follows = "nixpkgs"; emacs.url = "github:nix-community/emacs-overlay"; home-manager.url = "github:nix-community/home-manager"; home-manager.inputs.nixpkgs.follows = "nixpkgs"; lanzaboote.url = "github:nix-community/lanzaboote"; mailserver.url = "gitlab:simple-nixos-mailserver/nixos-mailserver/master"; neovim.url = "github:nix-community/neovim-nightly-overlay"; neovim.inputs.nixpkgs.url = "github:nixos/nixpkgs?rev=fad51abd42ca17a60fc1d4cb9382e2d79ae31836"; nix-colors.url = "sourcehut:~misterio/nix-colors"; nixpkgs-update.url = "github:ryantm/nixpkgs-update"; nur.url = "github:nix-community/nur"; wayland.url = "github:nix-community/nixpkgs-wayland"; }; outputs = inputs @ { self, nixpkgs, nixos-unstable, espanso-nixpkgs, agenix, alejandra, colmena, dns, doom-emacs, emacs, home-manager, lanzaboote, mailserver, neovim, nix-colors, nixpkgs-update, nur, wayland, }: let alejandra-overlay = final: prev: {alejandra = alejandra.defaultPackage.${prev.system};}; nixpkgs-update-overlay = final: prev: {nixpkgs-update = nixpkgs-update.defaultPackage.${prev.system};}; my-pkgs = final: prev: {my-pkgs = self.packages."${prev.system}";}; colmena-overlay = final: prev: {colmena = colmena.defaultPackage.${prev.system};}; system = "x86_64-linux"; pkgs = import nixpkgs { localSystem = "x86_64-linux"; config = { allowUnfree = true; input-fonts.acceptLicense = true; joypixels.acceptLicense = true; }; overlays = [ (import ./overlays/treesitter.nix) (import ./overlays/sumneko.nix) (import ./overlays/nyxt.nix) my-pkgs alejandra-overlay colmena-overlay emacs.overlay lanzaboote.overlays.default neovim.overlay nixpkgs-update-overlay nur.overlay wayland.overlays.default ]; }; lib = nixpkgs.lib; in { packages.${system} = { "caddy" = pkgs.callPackage ./pkgs/caddyBin.nix {}; "calckey" = pkgs.callPackage ./pkgs/calckey.nix {}; "catppuccin-bat" = pkgs.callPackage ./pkgs/catppuccin-bat.nix {}; "catppuccin-btop" = pkgs.callPackage ./pkgs/catppuccin-btop.nix {}; "cinny" = pkgs.callPackage ./pkgs/cinny.nix {}; "go-jamming" = pkgs.callPackage ./pkgs/go-jamming.nix {}; "nerdfont-symbols" = pkgs.callPackage ./pkgs/nerdfont-symbols.nix {}; "nyxt" = pkgs.callPackage ./pkgs/nyxt.nix {}; "nyxt-lisp" = pkgs.callPackage ./pkgs/nyxt-lisp.nix {}; "littlelink-custom" = pkgs.callPackage ./pkgs/littlelink-custom.nix {}; "olympus" = pkgs.callPackage ./pkgs/olympus.nix {}; "ory-hydra" = pkgs.callPackage ./pkgs/ory-hydra.nix {}; "pgp-webroot" = pkgs.callPackage ./pkgs/pgp-webroot.nix {}; "pywalfox" = pkgs.callPackage ./pkgs/pywalfox.nix {}; "radicale-htpasswd" = pkgs.callPackage ./pkgs/radicale-htpasswd.nix {}; "tokyo-night-gtk" = pkgs.callPackage ./pkgs/tokyo-night-gtk.nix {}; }; nixosConfigurations.marvin = lib.nixosSystem { system = "x86_64-linux"; modules = [ ./hosts/marvin/configuration.nix ./hosts/marvin/bootloader.nix mailserver.nixosModule ]; specialArgs = {inherit self inputs pkgs;}; }; nixosConfigurations.prefect = lib.nixosSystem { system = "x86_64-linux"; modules = [ ./hosts/prefect/configuration.nix ./hosts/prefect/bootloader.nix ./modules/dn42-pingfinder.nix ]; specialArgs = {inherit self inputs pkgs;}; }; nixosConfigurations.zaphod = lib.nixosSystem { system = "x86_64-linux"; modules = [ ./hosts/zaphod/configuration.nix ./hosts/zaphod/bootloader.nix inputs.home-manager.nixosModules.home-manager { home-manager.useGlobalPkgs = true; home-manager.useUserPackages = true; home-manager.users.thehedgehog = lib.mkMerge [ ./home.nix doom-emacs.hmModule nix-colors.homeManagerModule ]; home-manager.extraSpecialArgs = {inherit pkgs system inputs nix-colors;}; } ]; specialArgs = {inherit self inputs nix-colors;}; }; hydraJobs = { build = { marvin = self.nixosConfigurations.marvin.config.system.build.toplevel; prefect = self.nixosConfigurations.prefect.config.system.build.toplevel; zaphod = self.nixosConfigurations.zaphod.config.system.build.toplevel; }; }; }; }