117 lines
2.9 KiB
Nix
117 lines
2.9 KiB
Nix
{
|
|
description = "folliehiyuki's Nix Configuration";
|
|
|
|
nixConfig = {
|
|
extra-substituters = [
|
|
"https://nix-community.cachix.org"
|
|
];
|
|
extra-trusted-public-keys = [
|
|
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
|
|
];
|
|
};
|
|
|
|
inputs = {
|
|
# nixos-unstable can be used just fine on non-NixOS platforms
|
|
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
|
|
|
impermanence.url = "github:nix-community/impermanence";
|
|
|
|
flake-parts = {
|
|
url = "github:hercules-ci/flake-parts";
|
|
inputs.nixpkgs-lib.follows = "nixpkgs";
|
|
};
|
|
|
|
nix-index-database = {
|
|
url = "github:nix-community/nix-index-database";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
};
|
|
|
|
treefmt-nix = {
|
|
url = "github:numtide/treefmt-nix";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
};
|
|
|
|
disko = {
|
|
url = "github:nix-community/disko";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
};
|
|
|
|
darwin = {
|
|
url = "github:LnL7/nix-darwin";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
};
|
|
|
|
home-manager = {
|
|
url = "github:nix-community/home-manager";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
};
|
|
|
|
plasma-manager = {
|
|
url = "github:pjones/plasma-manager";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
inputs.home-manager.follows = "home-manager";
|
|
};
|
|
|
|
vscode-extensions = {
|
|
url = "github:nix-community/nix-vscode-extensions";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
inputs.flake-compat.follows = "flake-compat";
|
|
inputs.flake-utils.follows = "flake-utils";
|
|
};
|
|
|
|
lanzaboote = {
|
|
url = "github:nix-community/lanzaboote";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
inputs.flake-compat.follows = "flake-compat";
|
|
inputs.flake-parts.follows = "flake-parts";
|
|
inputs.flake-utils.follows = "flake-utils";
|
|
};
|
|
|
|
sops-nix = {
|
|
url = "github:Mic92/sops-nix";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
};
|
|
|
|
# These are used only for common dependencies lock
|
|
flake-utils.url = "github:numtide/flake-utils";
|
|
flake-compat = {
|
|
url = "github:edolstra/flake-compat";
|
|
flake = false;
|
|
};
|
|
};
|
|
|
|
outputs = inputs @ { flake-parts, nixpkgs, ... }:
|
|
let
|
|
myLib = import ./lib { inherit (nixpkgs) lib; };
|
|
in
|
|
flake-parts.lib.mkFlake { inherit inputs; } {
|
|
systems = [ "x86_64-linux" "aarch64-darwin" ];
|
|
|
|
imports = myLib.listModules ./flake;
|
|
|
|
perSystem = { system, ... }: {
|
|
_module.args = {
|
|
inherit (nixpkgs) lib;
|
|
|
|
pkgs = import nixpkgs {
|
|
inherit system;
|
|
|
|
# Allow installing unfree packages in perSystem blocks
|
|
config.allowUnfree = true;
|
|
};
|
|
};
|
|
};
|
|
|
|
flake = {
|
|
# exposed for other submodules to use
|
|
lib = myLib;
|
|
|
|
# Make sure my custom functions don't do anything stupid
|
|
tests = import ./tests {
|
|
inherit myLib;
|
|
inherit (nixpkgs) lib;
|
|
};
|
|
};
|
|
};
|
|
}
|