nix/flake.nix

101 lines
3.4 KiB
Nix
Raw Normal View History

2023-09-04 11:40:30 -05:00
{
2025-02-14 13:04:04 -06:00
outputs = inputs: let
lib = import ./lib inputs;
in
{
packages = lib.genPkgs inputs.nixpkgs-unstable (import ./packages);
2024-06-28 09:51:25 -05:00
2025-02-14 13:04:04 -06:00
nixosConfigurations = import ./packages/hosts inputs;
# homeConfigurations = import ./packages/users;
2024-06-28 11:50:18 -05:00
2025-02-14 13:04:04 -06:00
templates = import ./lib/templates;
2023-10-06 01:30:15 -05:00
2025-02-14 13:04:04 -06:00
diskoConfigurations = import ./lib/disko inputs;
checks = import ./packages/checks;
devShells = import ./packages/shells;
2025-02-14 13:04:04 -06:00
nixosModules = import ./lib/modules/nixos inputs;
homeManagerModules = import ./lib/modules/home inputs;
2025-02-14 13:04:04 -06:00
# overlays = import ./lib/overlays inputs;
2024-06-28 11:50:18 -05:00
2025-02-14 13:04:04 -06:00
formatter = lib.genPkgs inputs.nixpkgs-unstable (p: p.nixfmt-rfc-style);
2024-06-29 02:55:19 -05:00
2024-09-12 12:05:22 -05:00
/*
2025-02-14 13:04:04 -06:00
TODO: nix-on-droid for phone terminal usage? mobile-nixos?
TODO: nix-darwin for work?
TODO: nixos ISO?
2024-09-12 12:05:22 -05:00
*/
2025-02-14 13:04:04 -06:00
}
// (import ./nix/constants.nix inputs);
2025-02-14 10:22:56 -06:00
inputs = {
# stable inputs
nixpkgs.url = "github:NixOS/nixpkgs/nixos-24.11";
home-manager.url = "github:nix-community/home-manager/release-24.11";
home-manager.inputs.nixpkgs.follows = "nixpkgs";
# "unstable" inputs
nixpkgs-unstable.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
hardware.url = "github:NixOS/nixos-hardware";
disko.url = "github:nix-community/disko/master";
disko.inputs.nixpkgs.follows = "nixpkgs";
sops-nix.url = "github:Mic92/sops-nix";
sops-nix.inputs.nixpkgs.follows = "nixpkgs-unstable";
git-hooks.url = "github:cachix/git-hooks.nix";
git-hooks.inputs.nixpkgs.follows = "nixpkgs-unstable";
home-manager-unstable.url = "github:nix-community/home-manager";
home-manager-unstable.inputs.nixpkgs.follows = "nixpkgs-unstable";
helix.url = "github:helix-editor/helix/master";
helix.inputs.nixpkgs.follows = "nixpkgs-unstable";
slippi.url = "github:lytedev/slippi-nix";
# slippi.url = "git+file:///home/daniel/code/open-source/slippi-nix"; # used during flake development
slippi.inputs.nixpkgs.follows = "nixpkgs-unstable";
slippi.inputs.home-manager.follows = "home-manager-unstable";
# jovian.url = "github:Jovian-Experiments/Jovian-NixOS/development";
# jovian.inputs.nixpkgs.follows = "nixpkgs-unstable";
ghostty.url = "github:ghostty-org/ghostty";
ghostty.inputs.nixpkgs-unstable.follows = "nixpkgs-unstable";
ghostty.inputs.nixpkgs-stable.follows = "nixpkgs";
# nnf.url = "github:thelegy/nixos-nftables-firewall?rev=71fc2b79358d0dbacde83c806a0f008ece567b7b";
mobile-nixos = {
url = "github:lytedev/mobile-nixos";
flake = false;
};
};
nixConfig = {
extra-experimental-features = ["nix-command" "flakes"];
extra-substituters = [
"https://cache.nixos.org/"
"https://nix-community.cachix.org"
"https://nix.h.lyte.dev"
# since we are forcing most inputs to follow our nixpkgs, we don't bother settings up caches and just use our own
# "https://helix.cachix.org"
# "https://ghostty.cachix.org"
];
extra-trusted-public-keys = [
"cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY="
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
"h.lyte.dev-2:te9xK/GcWPA/5aXav8+e5RHImKYMug8hIIbhHsKPN0M="
# "helix.cachix.org-1:ejp9KQpR1FBI2onstMQ34yogDm4OgU2ru6lIwPvuCVs="
# "hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc="
# "ghostty.cachix.org-1:QB389yTa6gTyneehvqG58y0WnHjQOqgnA+wBnpWWxns="
];
};
2023-09-04 11:40:30 -05:00
}