nix-conf/flake.nix

178 lines
4.8 KiB
Nix
Raw Normal View History

2023-02-20 16:38:19 +01:00
{
inputs = {
2023-02-23 20:34:35 +01:00
# nixpkgs (Packges and modules)
2023-05-16 13:13:30 +02:00
nixpkgs.url = github:NixOS/nixpkgs;#/nixos-unstable;
2023-04-11 21:04:40 +02:00
#nixpkgs.url = github:jopejoe1/nixpkgs/noto-fonts;
2023-02-23 20:34:35 +01:00
# Nix Hardware (Hardware configs)
2023-02-20 16:38:19 +01:00
nixos-hardware.url = github:NixOS/nixos-hardware;
2023-02-23 20:34:35 +01:00
# NUR (User Packges)
2023-02-20 16:38:19 +01:00
nur.url = github:nix-community/NUR;
2023-02-23 20:34:35 +01:00
# Home Manger (Dot files)
2023-02-20 16:38:19 +01:00
home-manager = {
url = github:nix-community/home-manager;
inputs.nixpkgs.follows = "nixpkgs";
inputs.utils.follows = "flake-utils";
};
2023-02-23 20:34:35 +01:00
# Nix Darwin (Mac OS support)
2023-02-20 16:38:19 +01:00
nix-darwin = {
url = github:LnL7/nix-darwin;
inputs.nixpkgs.follows = "nixpkgs";
};
2023-02-23 20:34:35 +01:00
# Image generators
nixos-generators = {
url = github:nix-community/nixos-generators;
inputs.nixpkgs.follows = "nixpkgs";
inputs.nixlib.follows = "nixlib";
};
# PrismLauncher (git version of PrismLauncher)
prismlauncher = {
url = github:PrismLauncher/PrismLauncher;
2023-03-01 17:29:13 +01:00
inputs.nixpkgs.follows = "nixpkgs";
inputs.flake-compat.follows = "flake-compat";
inputs.libnbtplusplus.follows = "libnbtplusplus";
2023-02-23 20:34:35 +01:00
};
# vscode extensions
2023-02-20 16:38:19 +01:00
nix-vscode-extensions = {
url = github:nix-community/nix-vscode-extensions;
inputs.flake-compat.follows = "flake-compat";
inputs.flake-utils.follows = "flake-utils";
inputs.nixpkgs.follows = "nixpkgs";
};
2023-02-23 20:34:35 +01:00
snowfall-lib = {
url = github:snowfallorg/lib;
inputs.nixpkgs.follows = "nixpkgs";
inputs.flake-compat.follows = "flake-compat";
inputs.flake-utils-plus.follows = "flake-utils-plus";
};
snowfall-flake = {
url = github:snowfallorg/flake;
inputs.nixpkgs.follows = "nixpkgs";
inputs.unstable.follows = "nixpkgs";
inputs.flake-compat.follows = "flake-compat";
inputs.snowfall-lib.follows = "snowfall-lib";
};
2023-02-24 00:45:34 +01:00
peerix = {
url = github:cid-chan/peerix;
inputs.nixpkgs.follows = "nixpkgs";
inputs.flake-compat.follows = "flake-compat";
inputs.flake-utils.follows = "flake-utils";
};
2023-02-24 12:35:58 +01:00
agenix = {
url = github:ryantm/agenix;
inputs.nixpkgs.follows = "nixpkgs";
inputs.darwin.follows = "nix-darwin";
2023-05-16 13:15:33 +02:00
inputs.home-manager.follows = "home-manager";
2023-02-24 12:35:58 +01:00
};
2023-03-06 21:46:14 +01:00
dns = {
url = github:kirelagin/dns.nix;
inputs.nixpkgs.follows = "nixpkgs";
inputs.flake-utils.follows = "flake-utils";
};
2023-02-23 20:34:35 +01:00
# Dependcies
flake-compat = {
url = github:edolstra/flake-compat;
flake = false;
};
2023-03-05 01:06:25 +01:00
2023-02-23 20:34:35 +01:00
flake-utils.url = github:numtide/flake-utils;
nixlib.url = github:nix-community/nixpkgs.lib;
2023-03-05 01:06:25 +01:00
2023-02-24 16:05:26 +01:00
naersk = {
2023-02-24 16:03:52 +01:00
url = github:nix-community/naersk;
inputs.nixpkgs.follows = "nixpkgs";
};
2023-03-05 01:06:25 +01:00
2023-02-23 20:34:35 +01:00
flake-utils-plus = {
url = github:gytis-ivaskevicius/flake-utils-plus;
inputs.flake-utils.follows = "flake-utils";
};
2023-03-05 01:06:25 +01:00
comma = {
url = github:nix-community/comma;
inputs.nixpkgs.follows = "nixpkgs";
inputs.flake-compat.follows = "flake-compat";
inputs.utils.follows = "flake-utils";
inputs.naersk.follows = "naersk";
};
deploy-rs = {
url = github:serokell/deploy-rs;
inputs.nixpkgs.follows = "nixpkgs";
inputs.flake-compat.follows = "flake-compat";
inputs.utils.follows = "flake-utils";
};
libnbtplusplus = {
url = github:PrismLauncher/libnbtplusplus;
flake = false;
};
2023-02-20 16:38:19 +01:00
};
2023-02-23 20:34:35 +01:00
outputs = inputs:
let
lib = inputs.snowfall-lib.mkLib {
inherit inputs;
src = ./.;
};
in
lib.mkFlake {
package-namespace = "custom";
channels-config.allowUnfree = true;
overlays = with inputs; [
nur.overlay
snowfall-flake.overlay
2023-02-20 16:38:19 +01:00
];
2023-02-23 20:34:35 +01:00
systems.modules = with inputs; [
2023-02-22 13:01:05 +01:00
home-manager.nixosModules.home-manager
nur.nixosModules.nur
2023-02-24 00:45:34 +01:00
peerix.nixosModules.peerix
2023-02-24 12:35:58 +01:00
agenix.nixosModules.default
2023-02-22 13:01:05 +01:00
{
2023-03-01 19:08:11 +01:00
home-manager = {
useGlobalPkgs = true;
useUserPackages = true;
};
2023-02-24 18:33:14 +01:00
system.stateVersion = "23.05";
2023-03-01 19:08:11 +01:00
nix.registry = {
flake-utils.flake = flake-utils;
home-manager.flake = home-manager;
nix-darwin.flake = nix-darwin;
nixos-hardware.flake = nixos-hardware;
nur.flake = nur;
nixpkgs.flake = nixpkgs;
};
nix.nixPath = [ "nixpkgs=/etc/channels/nixpkgs" "nixos-config=/etc/nixos/configuration.nix" "/nix/var/nix/profiles/per-user/root/channels" ];
environment.etc."channels/nixpkgs".source = inputs.nixpkgs.outPath;
2023-02-22 13:01:05 +01:00
}
2023-02-23 20:34:35 +01:00
2023-02-22 13:01:05 +01:00
];
2023-02-23 20:34:35 +01:00
systems.hosts.yokai.modules = with inputs; [
nixos-hardware.nixosModules.pine64-pinebook-pro
2023-02-22 17:56:24 +01:00
];
2023-02-23 20:34:35 +01:00
deploy = lib.mkDeploy { inherit (inputs) self; };
checks =
builtins.mapAttrs
(system: deploy-lib:
deploy-lib.deployChecks inputs.self.deploy)
inputs.deploy-rs.lib;
2023-02-22 17:56:24 +01:00
};
2023-02-20 16:38:19 +01:00
}