alqueva/flake.nix
2024-12-14 03:11:04 -03:00

106 lines
2.5 KiB
Nix

{
description = "Alqueva is the largest lake in Portugal.";
inputs = {
nixpkgs = {
type = "github";
owner = "nixos";
repo = "nixpkgs";
ref = "nixos-unstable";
};
chaotic = {
type = "github";
owner = "chaotic-cx";
repo = "nyx";
ref = "nyxpkgs-unstable";
};
flake-parts = {
type = "github";
owner = "hercules-ci";
repo = "flake-parts";
inputs.nixpkgs-lib.follows = "nixpkgs";
};
git-hooks-nix = {
type = "github";
owner = "cachix";
repo = "git-hooks.nix";
inputs.nixpkgs.follows = "nixpkgs";
};
disko = {
type = "github";
owner = "nix-community";
repo = "disko";
inputs.nixpkgs.follows = "nixpkgs";
};
wallpkgs = {
type = "github";
owner = "notashelf";
repo = "wallpkgs";
inputs.nixpkgs.follows = "nixpkgs";
};
pankomacs = {
type = "git";
url = "https://codeberg.org/amadaluzia/pankomacs.git";
ref = "main";
inputs.nixpkgs.follows = "nixpkgs";
};
rosepine-qutebrowser = {
type = "github";
owner = "aalbegr";
repo = "qutebrowser-rose-pine";
flake = false;
};
painless-neovim = {
type = "git";
url = "https://codeberg.org/amadaluzia/painless-neovim.git";
ref = "master";
inputs.nixpkgs.follows = "nixpkgs";
};
};
outputs = inputs @ {
nixpkgs,
flake-parts,
...
}: let
lib = nixpkgs.lib.extend (import ./lib {inherit inputs;});
in
flake-parts.lib.mkFlake {
inherit inputs;
specialArgs = {inherit lib;};
} {
systems = ["x86_64-linux"];
imports = [
./hosts
./overlays
inputs.git-hooks-nix.flakeModule
];
flake = {inherit lib;};
perSystem = {
config,
pkgs,
...
}: {
pre-commit = {
check.enable = true;
settings.hooks = {
alejandra.enable = true;
nil.enable = true;
shellcheck.enable = true;
prettier.enable = true;
ruff.enable = true;
ruff-format.enable = true;
shfmt.enable = true;
deadnix = {
enable = true;
args = ["-e"];
};
statix = {
enable = true;
args = ["fix"];
};
};
};
devShells.default = config.pre-commit.devShell;
formatter = pkgs.alejandra;
};
};
}