121 lines
3.3 KiB
Nix
121 lines
3.3 KiB
Nix
# 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;
|
||
};
|
||
};
|
||
};
|
||
}
|