{ description = "My Nix Config"; inputs = { nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; nixpkgs-unstable.url = "github:nixos/nixpkgs/nixpkgs-unstable"; home-manager = { url = "github:nix-community/home-manager"; inputs.nixpkgs.follows = "nixpkgs"; }; hyprland = { # Official Hyprland flake url = "github:vaxerski/Hyprland"; # Add "hyprland.nixosModules.default" to the host modules inputs.nixpkgs.follows = "nixpkgs"; }; devenv = { url = "github:cachix/devenv/main"; inputs.nixpkgs.follows = "nixpkgs"; }; nix-colors.url = "github:misterio77/nix-colors"; gtk-nix.url = "github:the-argus/gtk-nix"; nix-index-database.url = "github:Mic92/nix-index-database"; nix-index-database.inputs.nixpkgs.follows = "nixpkgs"; agenix.url = "github:ryantm/agenix"; neovim-config.url = "github:gwg313/nvim-nix"; pre-commit-hooks.url = "github:cachix/pre-commit-hooks.nix"; pre-commit-hooks.inputs.nixpkgs.follows = "nixpkgs"; }; outputs = { self, nixpkgs, ... } @ inputs: let system = "x86_64-linux"; user = "glen"; pkgs = import nixpkgs { inherit system; config.allowUnfree = true; }; lib = nixpkgs.lib; in { # Your custom packages and modifications, exported as overlays overlays = import ./overlays {inherit inputs;}; nixosConfigurations = ( import ./hosts { inherit (nixpkgs) lib; specialArgs = {inherit inputs;}; inherit inputs user system; } ); devShells.${system} = { default = pkgs.mkShell { inherit (self.checks.${system}.pre-commit-check) shellHook; buildInputs = with pkgs; [ alejandra ]; }; }; checks.${system} = { pre-commit-check = inputs.pre-commit-hooks.lib.${system}.run { src = ./.; hooks = { alejandra.enable = true; }; }; }; }; }