Files
nixos-dotfiles/flake.nix
T

174 lines
4.5 KiB
Nix

{
description = "imxyy_soope_'s NixOS (flake) config";
inputs = {
# Nixpkgs
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
multiverse.url = "github:fzakaria/nixpkgs-multiverse";
# Home manager
home-manager = {
url = "github:nix-community/home-manager/master";
inputs.nixpkgs.follows = "nixpkgs";
};
# NixOS-WSL
nixos-wsl = {
url = "github:nix-community/NixOS-WSL";
inputs.nixpkgs.follows = "nixpkgs";
inputs.flake-compat.follows = "flake-compat";
};
# Flake organization tools
# keep-sorted start block=yes
flake-parts = {
url = "github:hercules-ci/flake-parts";
inputs.nixpkgs-lib.follows = "nixpkgs";
};
haumea = {
url = "github:nix-community/haumea/v0.2.2";
inputs.nixpkgs.follows = "nixpkgs";
};
infuse = {
url = "git+https://codeberg.org/amjoseph/infuse.nix";
flake = false;
};
# keep-sorted end
# Useful modules
# keep-sorted start block=yes
impermanence = {
url = "github:nix-community/impermanence";
inputs.nixpkgs.follows = "nixpkgs";
inputs.home-manager.follows = "home-manager";
};
sops-nix = {
url = "github:Mic92/sops-nix";
inputs.nixpkgs.follows = "nixpkgs";
};
stylix = {
url = "github:danth/stylix";
inputs.nixpkgs.follows = "nixpkgs";
inputs.flake-parts.follows = "flake-parts";
inputs.systems.follows = "systems";
};
system76-scheduler-niri = {
url = "github:Kirottu/system76-scheduler-niri";
inputs.nixpkgs.follows = "nixpkgs";
};
# keep-sorted end
# Useful software
# keep-sorted start block=yes
angrr = {
url = "github:linyinfeng/angrr";
inputs.nixpkgs.follows = "nixpkgs";
};
darkly = {
url = "github:Bali10050/Darkly";
inputs.nixpkgs.follows = "nixpkgs";
};
fast-nix-gc = {
url = "github:Mic92/fast-nix-gc";
inputs.nixpkgs.follows = "nixpkgs";
inputs.treefmt-nix.follows = "treefmt";
};
fenix = {
url = "github:nix-community/fenix";
inputs.nixpkgs.follows = "nixpkgs";
};
llm-agents = {
url = "github:numtide/llm-agents.nix";
# Not followed intentionally (binary cache)
# inputs.nixpkgs.follows = "nixpkgs";
inputs.flake-parts.follows = "flake-parts";
inputs.systems.follows = "systems";
inputs.treefmt-nix.follows = "treefmt";
};
niri-nix = {
url = "git+https://codeberg.org/bananad3v/niri-nix";
inputs.nixpkgs.follows = "nixpkgs";
};
nix-tree-rs = {
url = "github:Mic92/nix-tree-rs";
inputs.nixpkgs.follows = "nixpkgs";
inputs.flake-parts.follows = "flake-parts";
inputs.treefmt-nix.follows = "treefmt";
};
noctalia = {
url = "github:noctalia-dev/noctalia-shell/v5.0.0-beta.10";
inputs.nixpkgs.follows = "nixpkgs";
};
selector4nix = {
url = "github:StarryReverie/selector4nix";
inputs.flake-parts.follows = "flake-parts";
inputs.nixpkgs.follows = "nixpkgs";
};
zen = {
url = "github:0xc000022070/zen-browser-flake";
inputs.nixpkgs.follows = "nixpkgs";
inputs.home-manager.follows = "home-manager";
};
# keep-sorted end
# Misc
treefmt = {
url = "github:numtide/treefmt-nix";
inputs.nixpkgs.follows = "nixpkgs";
};
my-templates.url = "git+https://git.imxyy.top/imxyy1soope1/flake-templates";
# Flattened indirect dependencies
flake-compat.url = "github:edolstra/flake-compat";
flake-utils = {
url = "github:numtide/flake-utils";
inputs.systems.follows = "systems";
};
systems.url = "github:nix-systems/default";
};
outputs =
{
flake-parts,
...
}@inputs:
flake-parts.lib.mkFlake
{
inherit inputs;
specialArgs.lib = import ./lib {
inherit (inputs.nixpkgs) lib;
inherit inputs;
};
}
{
systems = [ "x86_64-linux" ];
imports = [
./flake/hosts.nix
./flake/pkgs.nix
./treefmt.nix
];
nixosHosts = {
imxyy-nix = {
profiles = [ "desktop" ];
};
imxyy-nix-server = {
profiles = [ "server" ];
};
imxyy-nix-wsl = {
profiles = [ "wsl" ];
modules = [
inputs.nixos-wsl.nixosModules.default
];
};
imxyy-nix-x16 = {
profiles = [ "desktop" ];
};
};
};
}