{ inputs = { nixpkgs = { # --- Official # type = "github"; # owner = "NixOS"; # repo = "nixpkgs"; # ref = "master"; # --- Fork type = "github"; owner = "karaolidis"; repo = "nixpkgs"; ref = "integration"; # --- Local # url = "git+file:./submodules/nixpkgs"; }; home-manager = { # --- Official # type = "github"; # owner = "nix-community" # repo = "home-manager"; # --- Fork type = "github"; owner = "karaolidis"; repo = "home-manager"; ref = "integration"; # --- Local # url = "git+file:./submodules/home-manager"; inputs.nixpkgs.follows = "nixpkgs"; }; disko = { type = "github"; owner = "nix-community"; repo = "disko"; ref = "master"; inputs.nixpkgs.follows = "nixpkgs"; }; sops-nix = { type = "github"; owner = "Mic92"; repo = "sops-nix"; ref = "master"; inputs.nixpkgs.follows = "nixpkgs"; }; systems = { type = "github"; owner = "nix-systems"; repo = "default"; ref = "main"; }; nur = { type = "github"; owner = "nix-community"; repo = "NUR"; ref = "master"; inputs = { nixpkgs.follows = "nixpkgs"; treefmt-nix.follows = "treefmt-nix"; }; }; flake-utils = { type = "github"; owner = "numtide"; repo = "flake-utils"; ref = "main"; inputs.systems.follows = "systems"; }; treefmt-nix = { type = "github"; owner = "numtide"; repo = "treefmt-nix"; ref = "main"; inputs.nixpkgs.follows = "nixpkgs"; }; quadlet-nix = { type = "github"; owner = "SEIAROTg"; repo = "quadlet-nix"; ref = "main"; inputs.nixpkgs.follows = "nixpkgs"; }; astal = { type = "github"; owner = "aylur"; repo = "astal"; ref = "main"; inputs.nixpkgs.follows = "nixpkgs"; }; ags = { type = "github"; owner = "aylur"; repo = "ags"; ref = "main"; inputs = { nixpkgs.follows = "nixpkgs"; astal.follows = "astal"; }; }; spicetify-nix = { # --- Official # type = "github"; # owner = "Gerg-L"; # repo = "spicetify-nix"; # ref = "master"; # --- Fork type = "github"; owner = "karaolidis"; repo = "spicetify-nix"; ref = "integration"; # --- Local # url = "git+file:./submodules/spicetify-nix"; inputs = { nixpkgs.follows = "nixpkgs"; systems.follows = "systems"; }; }; }; outputs = { self, nixpkgs, ... }@inputs: { nixosConfigurations = { installer = nixpkgs.lib.nixosSystem rec { system = "x86_64-linux"; modules = [ ./hosts/installer ]; specialArgs = { inherit inputs system; }; }; eirene = nixpkgs.lib.nixosSystem rec { system = "x86_64-linux"; modules = [ ./hosts/eirene ]; specialArgs = { inherit inputs system; }; }; elara = nixpkgs.lib.nixosSystem rec { system = "x86_64-linux"; modules = [ ./hosts/elara ]; specialArgs = { inherit inputs system; }; }; }; } // inputs.flake-utils.lib.eachSystem [ "x86_64-linux" ] ( system: let pkgs = nixpkgs.legacyPackages.${system}; treefmt = inputs.treefmt-nix.lib.evalModule pkgs ./treefmt.nix; in { devShells = { bun = import ./hosts/common/shells/bun { inherit pkgs; }; c = import ./hosts/common/shells/c { inherit pkgs; }; go = import ./hosts/common/shells/go { inherit pkgs; }; java = import ./hosts/common/shells/java { inherit pkgs; }; nix = import ./hosts/common/shells/nix { inherit pkgs; }; nodejs = import ./hosts/common/shells/nodejs { inherit pkgs; }; python = import ./hosts/common/shells/python { inherit pkgs; }; rust = import ./hosts/common/shells/rust { inherit pkgs; }; }; formatter = treefmt.config.build.wrapper; checks.formatting = treefmt.config.build.check self; } ); }