{ 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/mrhedgehog/.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"; 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"; neovim.url = "github:nix-community/neovim-nightly-overlay"; nix-colors.url = "sourcehut:~misterio/nix-colors"; nixgl.url = "github:guibou/nixGL"; nixgl.inputs.nixpkgs.follows = "nixpkgs"; 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"; nur.inputs.nixpkgs.follows = "nixpkgs"; 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, doom-emacs, emacs, home-manager, neovim, nix-colors, nixgl, 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; }; overlays = [ (import ./overlays/sumneko.nix) my-pkgs alejandra-overlay colmena-overlay emacs.overlay neovim.overlay nixgl.overlay nixpkgs-update-overlay nur.overlay statix.overlay wayland.overlays.default ]; }; lib = nixpkgs.lib; in { packages.${system} = { "nerdfont-symbols" = pkgs.callPackage ./pkgs/nerdfont-symbols.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 {}; "pywalfox" = pkgs.callPackage ./pkgs/pywalfox.nix {}; "ory-hydra" = pkgs.callPackage ./pkgs/ory-hydra.nix {}; "radicale-htpasswd" = pkgs.callPackage ./pkgs/radicale-htpasswd.nix {}; }; nixosConfigurations.marvin = lib.nixosSystem { system = "x86_64-linux"; modules = [ ./hosts/marvin/configuration.nix ./hosts/marvin/bootloader.nix ]; 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;}; }; homeConfigurations.mrhedgehog = home-manager.lib.homeManagerConfiguration { inherit pkgs; modules = [ ./home.nix doom-emacs.hmModule nix-colors.homeManagerModule ]; extraSpecialArgs = {inherit nix-colors;}; }; colmena = { meta = { nixpkgs = pkgs; description = "The Hedgehog's personal computing infrastructure"; name = "hedgehog"; specialArgs = { inherit self inputs pkgs;}; }; defaults = { deployment.buildOnTarget = true; deployment.targetPort = 22; }; marvin = { deployment = { targetHost = "marvin"; targetUser = "root"; }; imports = [ ./hosts/marvin/configuration.nix ./hosts/marvin/bootloader.nix ]; }; prefect = { deployment = { targetHost = "136.243.175.187"; targetUser = "root"; }; imports = [ ./hosts/prefect/configuration.nix ./hosts/prefect/bootloader.nix ]; }; }; }; }