ark/flake.nix
2022-07-18 19:34:54 +03:00

55 lines
1.5 KiB
Nix

{
description = "config!!!";
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
nur.url = "github:nix-community/NUR";
home.url = "github:nix-community/home-manager/master";
home.inputs.nixpkgs.follows = "nixpkgs";
nixos-hardware.url = "github:nixos/nixos-hardware";
nixos-persistence.url = "github:nix-community/impermanence";
smos.url = "github:yusdacra/smos/chore/fix-nix-flakes";
smos.flake = false;
helix.url = "github:helix-editor/helix";
helix.inputs.nixpkgs.follows = "nixpkgs";
hyprland.url = "github:hyprwm/Hyprland";
hyprland.inputs.nixpkgs.follows = "nixpkgs";
fufexan.url = "github:fufexan/dotfiles";
fufexan.flake = false;
};
outputs = inputs: let
lib = inputs.nixpkgs.lib.extend (_: _: builtins);
tlib = (import ./lib lib).extend (_: prev: rec {
makePkgs = system:
import ./pkgs-set {
inherit system lib inputs;
tlib = prev;
};
genPkgs = f: prev.genSystems (system: f (makePkgs system));
});
allPkgs = tlib.genPkgs (x: x);
in rec {
nixosConfigurations = import ./hosts {inherit lib tlib inputs;};
packages = lib.mapAttrs (_: pkgs: pkgs._exported) allPkgs;
apps =
lib.mapAttrs
(
_: pkgs: {
generate-firefox-addons = {
type = "app";
program = toString "${pkgs.generate-firefox-addons}/bin/generate-firefox-addons";
};
}
)
allPkgs;
devShells = import ./shells {inherit lib tlib inputs;};
};
}