# Edit this configuration file to define what should be installed on # your system. Help is available in the configuration.nix(5) man page # and in the NixOS manual (accessible by running ‘nixos-help’). { description = "Greg's machines!"; nixConfig = { extra-substituters = [ "https://greg-hellings.cachix.org" "https://cache.garnix.io" ]; extra-trusted-public-keys = [ "greg-hellings.cachix.org-1:y01Jl/L5evlhxdnUW6n56AiI1k8g1wxWhTxJCe7XSco=" "cache.garnix.io:CTFPyKSLcx5RMJKfLo5EEPUObbA78b0YQ2DTCJXqr9g" ]; }; inputs = { agenix = { url = "github:ryantm/agenix"; inputs.nixpkgs.follows = "nixunstable"; }; btc = { url = "github:fort-nix/nix-bitcoin/release"; }; darwin = { url = "github:lnl7/nix-darwin/master"; inputs.nixpkgs.follows = "nixunstable"; }; flake-parts.url = "github:hercules-ci/flake-parts"; hooks.url = "github:cachix/git-hooks.nix"; hmunstable = { url = "github:nix-community/home-manager/master"; inputs.nixpkgs.follows = "nixunstable"; }; proxmox.url = "github:SaumonNet/proxmox-nixos"; # To enable backups: https://github.com/SaumonNet/proxmox-nixos/pull/45 #proxmox.url = "github:blecher-at/proxmox-nixos/fix-backup-pve-manager"; nixos-generators = { url = "github:nix-community/nixos-generators"; inputs.nixpkgs.follows = "nixunstable"; }; nixvimunstable.url = "github:nix-community/nixvim/main"; nixunstable.url = "github:nixos/nixpkgs/nixos-unstable"; nurpkgs.url = "github:nix-community/NUR"; vsext.url = "github:greg-hellings/nix-vscode-extensions/fix-json"; wsl = { url = "github:nix-community/NixOS-WSL"; inputs.nixpkgs.follows = "nixunstable"; }; }; outputs = { self, ... }@top: let local_overlay = import ./overlays; packages_overlay = ( _: prev: (import ./pkgs { inherit self top; pkgs = prev; }) ); overlays = [ top.agenix.overlays.default local_overlay packages_overlay top.nurpkgs.overlays.default top.vsext.overlays.default ]; in top.flake-parts.lib.mkFlake { inputs = top; } { systems = [ "aarch64-linux" "x86_64-linux" "aarch64-darwin" ]; flake = { nixosConfigurations = (import ./hosts { inherit top overlays; }); darwinConfigurations = (import ./darwin { inherit top overlays; }); homeConfigurations = (import ./home { inherit top overlays; }); overlays = { default = packages_overlay; local = local_overlay; }; modules = import ./modules; }; perSystem = { pkgs, self', system, ... }: { _module.args = { pkgs = import top.nixunstable { inherit system overlays; }; }; packages = (import ./pkgs { inherit pkgs top; }) // (import ./vms { inherit top; }); checks = import ./checks.nix { inherit system; inherit (top) hooks; }; devShells = import ./shells.nix { inherit self' pkgs; inherit (top) nixvimunstable; }; }; }; }