{ description = "Frosted Flakes"; inputs = { # NixOS unstable nixpkgs.url = "nixpkgs/nixos-unstable"; # nixpkgs.url = "nixpkgs/nixos-21.05"; nixpkgs-unstable.url = "nixpkgs/nixos-unstable"; # home-manager home-manager.url = "github:nix-community/home-manager/master"; # home-manager.url = "github:nix-community/home-manager/release-21.05"; home-manager.inputs.nixpkgs.follows = "nixpkgs"; # agenix - age-encrypted secrets agenix.url = "github:ryantm/agenix"; agenix.inputs.nixpkgs.follows = "nixpkgs"; # nixos-hardware nixos-hardware.url = "github:nixos/nixos-hardware"; nixos-hardware.inputs.nixpkgs.follows = "nixpkgs"; /* # fzf-hoogle fzf-hoogle-vim.url = "github:monkoose/fzf-hoogle.vim"; fzf-hoogle-vim.flake = false; # asyncrun-vim asyncrun-vim.url = "github:skywind3000/asyncrun.vim"; asyncrun-vim.flake = false; */ meson.url = "github:mesonbuild/meson/0.60"; meson.flake = false; sway-borders.url = "github:fluix-dev/sway-borders"; sway-borders.flake = false; # blender-30.url = "github:blender/blender/blender-v3.0-release"; # blender-30.flake = false; multimc.url = "github:PolyMC/PolyMC"; }; outputs = inputs @ { self, nixpkgs, nixpkgs-unstable, ... }: let system = "x86_64-linux"; lib = import ./lib { inherit pkgs inputs; lib = nixpkgs.lib; }; inherit (lib._) mapModules mapModulesRec mkHost; mkPkgs = pkgs: overlays: import pkgs { inherit system; config.allowUnfree = true; overlays = overlays ++ (lib.attrValues self.overlays); }; pkgs = mkPkgs nixpkgs [ self.overlay ]; in { packages."${system}" = mapModules ./packages (p: pkgs.callPackage p {}); overlay = final: prev: { _ = self.packages."${system}"; # meson = inputs.meson; # sway-unwrapped = inputs.sway-borders; # blender = inputs.blender-30; unstable = mkPkgs nixpkgs-unstable []; }; overlays = mapModules ./overlays import ++ [ inputs.polymc.overlay.${system} ]; nixosModules = mapModulesRec ./modules import; nixosConfigurations = mapModules ./hosts (mkHost system); devShell."${system}" = import ./shell.nix { inherit pkgs; }; }; }