nixconf/flake.nix

123 lines
2.9 KiB
Nix

{
description = "Configuration v1";
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
nixpkgs-24-11.url = "github:NixOS/nixpkgs/nixos-24.11";
treefmt-nix = {
url = "github:numtide/treefmt-nix";
inputs.nixpkgs.follows = "nixpkgs-24-11";
};
sops-nix = {
url = "github:Mic92/sops-nix";
inputs.nixpkgs.follows = "nixpkgs-24-11";
};
NixOS-WSL-2411 = {
url = "github:nix-community/NixOS-WSL";
inputs.nixpkgs.follows = "nixpkgs-24-11";
};
homeManager-24-11 = {
url = "github:nix-community/home-manager/release-24.11";
inputs.nixpkgs.follows = "nixpkgs-24-11";
};
# Custom Vim Plugins
cmp-vimtex = {
url = "github:micangl/cmp-vimtex/master";
flake = false;
};
spaceport-nvim = {
url = "github:CWood-sdf/spaceport.nvim/main";
flake = false;
};
# parrot-nvim = {
# url = "github:frankroeder/parrot.nvim/main";
# flake = false;
# };
nomodoro = {
url = "github:dbinagi/nomodoro/main";
flake = false;
};
nvim-web-devicons = {
url = "github:nvim-tree/nvim-web-devicons/master";
flake = false;
};
zsh-completions = {
url = "github:zsh-users/zsh-completions/master";
flake = false;
};
claude-mcp-bundle = {
url = "git+ssh://git@gitea.deepak.science:2222/deepak/claude_mcp_bundle.git";
inputs.nixpkgs.follows = "nixpkgs";
};
mdt = {
url = "github:basilioss/mdt/main";
flake = false;
};
};
outputs =
{
self,
systems,
nixpkgs,
cmp-vimtex,
spaceport-nvim,
nomodoro,
...
}@inputs:
let
customPackageOverlay =
(import ./overlays/default.nix {
inherit cmp-vimtex;
inherit spaceport-nvim;
inherit inputs;
inherit nomodoro;
# parrot-nvim = inputs.parrot-nvim;
}).overlay;
# Small tool to iterate over each systems
eachSystem = f: nixpkgs.lib.genAttrs (import systems) (system: f nixpkgs.legacyPackages.${system});
# Eval the treefmt modules from ./treefmt.nix
treefmtEval = eachSystem (pkgs: inputs.treefmt-nix.lib.evalModule pkgs ./treefmt.nix);
in
{
nixosConfigurations = (
import ./hosts/hosts.nix {
inherit inputs;
inherit customPackageOverlay;
}
);
formatter = eachSystem (pkgs: treefmtEval.${pkgs.system}.config.build.wrapper);
# for `nix flake check`
checks = eachSystem (pkgs: {
formatting = treefmtEval.${pkgs.system}.config.build.check self;
});
devShells = eachSystem (pkgs: {
default = pkgs.mkShell {
buildInputs = with pkgs; [
kubernetes-helm
kubectl
jq
stern
nixfmt-rfc-style
alejandra
];
};
});
};
}