nixos/flake.nix

225 lines
4.6 KiB
Nix

{
description = "A simple NixOS flakes";
outputs =
{
flake-parts,
flake-utils,
home-manager,
treefmt-nix,
nixpkgs,
...
}@inputs:
let
nixpkgs-lib = nixpkgs.lib;
lib = nixpkgs-lib.extend (import ./lib);
in
flake-parts.lib.mkFlake
{
inherit inputs;
specialArgs = {
inherit lib;
rootPath = ./.;
};
}
(
{ lib, ... }:
{
systems = flake-utils.lib.defaultSystems;
imports = [
home-manager.flakeModules.home-manager
treefmt-nix.flakeModule
]
++ lib.youthlic.loadImports ./flake;
flake = {
inherit lib;
nix.settings = {
# substituters shared in home-manager and nixos configuration
substituters =
let
cachix = x: "https://${x}.cachix.org";
in
lib.flatten [
(cachix "nix-community")
"https://cache.nixos.org"
(cachix "cosmic")
];
};
};
}
);
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
# nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable-small";
# nixpkgs.url = "github:NixOS/nixpkgs/master";
# nixpkgs.follows = "nixos-cosmic/nixpkgs";
lix-module = {
# url = "git+https://git.lix.systems/lix-project/nixos-module?ref=release-2.93";
url = "git+https://git.lix.systems/lix-project/nixos-module";
inputs = {
nixpkgs.follows = "nixpkgs";
flake-utils.follows = "flake-utils";
};
};
helix = {
type = "github";
owner = "helix-editor";
repo = "helix";
ref = "master";
inputs = {
nixpkgs.follows = "nixpkgs";
};
};
home-manager = {
type = "github";
owner = "nix-community";
repo = "home-manager";
inputs = {
nixpkgs.follows = "nixpkgs";
};
};
betterfox-nix = {
type = "github";
owner = "HeitorAugustoLN";
repo = "betterfox-nix";
inputs = {
nixpkgs.follows = "nixpkgs";
};
};
niri-flake = {
type = "github";
owner = "sodiboo";
repo = "niri-flake";
inputs = {
nixpkgs.follows = "nixpkgs";
};
};
nixos-cosmic = {
type = "github";
owner = "lilyinstarlight";
repo = "nixos-cosmic";
};
nixos-hardware = {
type = "github";
owner = "NixOS";
repo = "nixos-hardware";
ref = "master";
};
dae = {
type = "github";
owner = "daeuniverse";
repo = "flake.nix";
inputs = {
nixpkgs.follows = "nixpkgs";
flake-parts.follows = "flake-parts";
};
};
flake-parts = {
type = "github";
owner = "hercules-ci";
repo = "flake-parts";
};
flake-utils = {
type = "github";
owner = "numtide";
repo = "flake-utils";
};
sops-nix = {
type = "github";
owner = "Mic92";
repo = "sops-nix";
inputs = {
nixpkgs.follows = "nixpkgs";
};
};
stylix = {
type = "github";
owner = "nix-community";
repo = "stylix";
inputs = {
nixpkgs.follows = "nixpkgs";
flake-parts.follows = "flake-parts";
};
};
disko = {
type = "github";
owner = "nix-community";
repo = "disko";
inputs = {
nixpkgs.follows = "nixpkgs";
};
};
deploy-rs = {
type = "github";
owner = "serokell";
repo = "deploy-rs";
inputs = {
nixpkgs.follows = "nixpkgs";
utils.follows = "flake-utils";
};
};
treefmt-nix = {
type = "github";
owner = "numtide";
repo = "treefmt-nix";
};
chaotic = {
type = "github";
owner = "chaotic-cx";
repo = "nyx";
};
nur = {
type = "github";
owner = "nix-community";
repo = "NUR";
};
nur-ataraxiasjel = {
type = "github";
owner = "AtaraxiaSjel";
repo = "nur";
};
nixvim = {
type = "github";
owner = "nix-community";
repo = "nixvim";
};
neovim-nightly = {
type = "github";
owner = "nix-community";
repo = "neovim-nightly-overlay";
};
lanzaboote = {
type = "github";
owner = "nix-community";
repo = "lanzaboote";
ref = "v0.4.2";
};
nix-doom = {
type = "github";
owner = "marienz";
repo = "nix-doom-emacs-unstraightened";
inputs.nixpkgs.follows = "nixpkgs";
};
};
}