{ description = "Torjus nixos config flake"; inputs = { nixpkgs-stable.url = "github:nixos/nixpkgs?ref=nixos-24.05"; #nixpkgs-master.url = "github:nixos/nixpkgs?ref=master"; nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-unstable"; home-manager = { url = "github:nix-community/home-manager"; inputs.nixpkgs.follows = "nixpkgs"; }; sops-nix = { url = "github:Mic92/sops-nix"; inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs-stable.follows = "nixpkgs-stable"; }; ghettoptt = { url = "git+https://git.t-juice.club/torjus/ghettoptt?ref=master"; inputs.nixpkgs.follows = "nixpkgs"; }; huecli = { url = "git+https://git.t-juice.club/torjus/huecli?ref=master"; inputs.nixpkgs.follows = "nixpkgs"; }; nix-packages = { url = "git+https://git.t-juice.club/torjus/nix-packages?ref=master"; inputs.nixpkgs.follows = "nixpkgs"; }; nixprstatus = { url = "git+https://git.t-juice.club/torjus/nixprstatus?ref=master"; inputs.nixpkgs.follows = "nixpkgs"; }; }; outputs = { self, nixpkgs, # nixpkgs-master, nixpkgs-stable, nixprstatus, sops-nix, ghettoptt, huecli, nix-packages, ... }@inputs: let system = "x86_64-linux"; user = "torjus"; overlay-stable = final: prev: { stable = import nixpkgs-stable { inherit system; config.allowUnfree = true; }; }; # overlay-master = final: prev: { # master = import nixpkgs-master { # inherit system; # config.allowUnfree = true; # }; # }; allSystems = [ "x86_64-linux" "aarch64-linux" "x86_64-darwin" "aarch64-darwin" ]; forAllSystems = f: nixpkgs.lib.genAttrs allSystems (system: f { pkgs = import nixpkgs { inherit system; }; }); commonOverlays = [ overlay-stable # overlay-master ghettoptt.overlays.default huecli.overlays.default nix-packages.overlays.default nixprstatus.overlays.default ]; in { nixosConfigurations = { prismo = nixpkgs.lib.nixosSystem { inherit system; specialArgs = { inherit inputs self user; }; modules = [ ( { config, pkgs, ... }: { nixpkgs.overlays = commonOverlays; } ) ./hosts/prismo sops-nix.nixosModules.sops ]; }; magicman = nixpkgs.lib.nixosSystem { inherit system; specialArgs = { inherit inputs self user; }; modules = [ ( { config, pkgs, ... }: { nixpkgs.overlays = commonOverlays; } ) ./hosts/magicman sops-nix.nixosModules.sops ]; }; gunter = nixpkgs.lib.nixosSystem { inherit system; specialArgs = { inherit inputs self user sops-nix ; }; modules = [ ( { config, pkgs, ... }: { nixpkgs.overlays = commonOverlays; } ) ./hosts/gunter sops-nix.nixosModules.sops ]; }; }; devShells = forAllSystems ( { pkgs }: { default = pkgs.mkShell { packages = with pkgs; [ act actionlint yamllint ]; }; } ); }; }