{ description = "nezia's nixos configuration"; outputs = { self, nixpkgs, agenix, deploy-rs, treefmt-nix, ... } @ inputs: let eachSystem = f: nixpkgs.lib.genAttrs nixpkgs.lib.systems.flakeExposed (system: f nixpkgs.legacyPackages.${system}); treefmtEval = eachSystem (pkgs: treefmt-nix.lib.evalModule pkgs ./treefmt.nix); in { devShells = eachSystem (pkgs: { default = pkgs.mkShell { packages = [ pkgs.alejandra pkgs.git deploy-rs.packages.${pkgs.system}.default agenix.packages.${pkgs.system}.default ]; }; }); formatter = eachSystem (pkgs: treefmtEval.${pkgs.system}.config.build.wrapper); nixosConfigurations = import ./hosts {inherit self inputs;}; packages = eachSystem (pkgs: import ./shared/pkgs {inherit inputs pkgs;}); deploy.nodes = import ./nodes.nix {inherit inputs;}; checks = builtins.mapAttrs (_: deployLib: deployLib.deployChecks self.deploy) deploy-rs.lib; }; inputs = { # nix related nixpkgs.url = "nixpkgs/nixos-unstable"; nixos-hardware.url = "github:NixOS/nixos-hardware"; lanzaboote = { url = "github:nix-community/lanzaboote/v0.4.1"; inputs.nixpkgs.follows = "nixpkgs"; }; home-manager = { url = "github:nix-community/home-manager"; inputs.nixpkgs.follows = "nixpkgs"; }; nix-index-db = { url = "github:nix-community/nix-index-database"; inputs.nixpkgs.follows = "nixpkgs"; }; # other agenix = { url = "github:ryantm/agenix"; inputs.nixpkgs.follows = "nixpkgs"; }; basix.url = "github:notashelf/basix"; deploy-rs.url = "github:serokell/deploy-rs"; firefox-addons = { url = "gitlab:rycee/nur-expressions?dir=pkgs/firefox-addons"; inputs.nixpkgs.follows = "nixpkgs"; }; hyprland.url = "github:hyprwm/Hyprland"; hyprland-qtutils = { url = "github:hyprwm/hyprland-qtutils"; inputs.nixpkgs.follows = "nixpkgs"; }; hypridle = { url = "github:hyprwm/hypridle"; inputs = { hyprlang.follows = "hyprland/hyprlang"; hyprutils.follows = "hyprland/hyprutils"; nixpkgs.follows = "hyprland/nixpkgs"; systems.follows = "hyprland/systems"; }; }; hyprlock = { url = "github:hyprwm/hyprlock"; inputs = { hyprlang.follows = "hyprland/hyprlang"; hyprutils.follows = "hyprland/hyprutils"; nixpkgs.follows = "hyprland/nixpkgs"; systems.follows = "hyprland/systems"; }; }; hyprpaper = { url = "github:hyprwm/hyprpaper"; inputs = { hyprlang.follows = "hyprland/hyprlang"; hyprutils.follows = "hyprland/hyprutils"; nixpkgs.follows = "hyprland/nixpkgs"; systems.follows = "hyprland/systems"; }; }; hyprwm-contrib = { url = "github:hyprwm/contrib"; inputs.nixpkgs.follows = "nixpkgs"; }; niri.url = "github:sodiboo/niri-flake"; nix-flatpak.url = "github:gmodena/nix-flatpak/?ref=v0.5.0"; nix-gaming.url = "github:fufexan/nix-gaming"; nvf.url = "github:notashelf/nvf"; plasma-manager = { url = "github:nix-community/plasma-manager"; inputs.nixpkgs.follows = "nixpkgs"; inputs.home-manager.follows = "home-manager"; }; treefmt-nix.url = "github:numtide/treefmt-nix"; walker.url = "github:abenz1267/walker"; website.url = "github:nezia1/nezia.dev"; }; nixConfig = { extra-substituters = [ # use nixos cache first "https://cache.nixos.org?priority=10" "https://hyprland.cachix.org" "https://nix-gaming.cachix.org" "https://walker.cachix.org" "https://walker-git.cachix.org" ]; extra-trusted-public-keys = [ "cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=" "hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc=" "nix-gaming.cachix.org-1:nbjlureqMbRAxR1gJ/f3hxemL9svXaZF/Ees8vCUUs4=" "walker-git.cachix.org-1:vmC0ocfPWh0S/vRAQGtChuiZBTAe4wiKDeyyXM0/7pM=" ]; }; }