{ 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://statix.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= statix.cachix.org-1:Z9E/g1YjCjU117QOOt07OjhljCoRZddiAm4VVESvais= 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"; nixos-hardware.url = "github:nixos/nixos-hardware"; 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"; mailserver.url = "gitlab:simple-nixos-mailserver/nixos-mailserver/master"; neovim.url = "github:nix-community/neovim-nightly-overlay"; nix-colors.url = "sourcehut:~misterio/nix-colors"; nixos-generators.url = "github:nix-community/nixos-generators/kexec-bundle"; nixos-generators.inputs.nixpkgs.follows = "nixpkgs"; nixpkgs-update.url = "github:ryantm/nixpkgs-update"; nur.url = "github:nix-community/nur"; statix.url = "github:NerdyPepper/statix"; statix.inputs.nixpkgs.follows = "nixpkgs"; tokyo-night-ff.url = "github:rototrash/firefox-css"; tokyo-night-ff.flake = false; wayland.url = "github:nix-community/nixpkgs-wayland"; }; outputs = inputs @ { self, nixpkgs, nixos-unstable, nixos-hardware, agenix, alejandra, colmena, dns, doom-emacs, emacs, home-manager, mailserver, neovim, nix-colors, nixos-generators, nixpkgs-update, nur, statix, tokyo-night-ff, 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 { # inherit system; localSystem = "x86_64-linux"; config = { allowUnfree = true; input-fonts.acceptLicense = true; joypixels.acceptLicense = true; }; overlays = [ (import ./overlays/treesitter.nix) (import ./overlays/sumneko.nix) my-pkgs alejandra-overlay colmena-overlay emacs.overlay neovim.overlay nixpkgs-update-overlay nur.overlay statix.overlay wayland.overlays.default ]; }; lib = nixpkgs.lib; in { packages.${system} = { "caddy" = pkgs.callPackage ./pkgs/caddyBin.nix {}; "cinny" = pkgs.callPackage ./pkgs/cinny.nix {}; "go-jamming" = pkgs.callPackage ./pkgs/go-jamming.nix {}; "nerdfont-symbols" = pkgs.callPackage ./pkgs/nerdfont-symbols.nix {}; "olympus" = pkgs.callPackage ./pkgs/olympus.nix {}; "ory-hydra" = pkgs.callPackage ./pkgs/ory-hydra.nix {}; "pywalfox" = pkgs.callPackage ./pkgs/pywalfox.nix {}; "radicale-htpasswd" = pkgs.callPackage ./pkgs/radicale-htpasswd.nix {}; "sway-launcher-desktop" = pkgs.callPackage ./pkgs/sway-launcher-desktop.nix {}; "taskwarrior-tui" = pkgs.callPackage ./pkgs/taskwarrior-tui.nix {}; "tokyo-night-gtk" = pkgs.callPackage ./pkgs/tokyo-night-gtk.nix {}; "xcaddy" = pkgs.callPackage ./pkgs/xcaddy.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 ]; specialArgs = {inherit self inputs;}; }; 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; }; }; }; }