{ 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; }; }; }