all repos — flake @ efbb4abb37e9d168c01a553eb48f5a58f8c6273a

got my cool flake

flake.nix (view raw)

 1
 2
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
{
  inputs = {
    nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
    nixos-hardware.url = "github:NixOS/nixos-hardware/master";
    tranquil.url = "git+https://tangled.org/tranquil.farm/tranquil-pds.git";

    home-manager = {
      url = "github:nix-community/home-manager";
      inputs.nixpkgs.follows = "nixpkgs";
    };

    ironbar = {
      url = "github:JakeStanger/ironbar";
      inputs.nixpkgs.follows = "nixpkgs";
    };
  };

  outputs =
    { nixpkgs, home-manager, ... }@inputs:
    let
      supportedSystems = nixpkgs.lib.systems.flakeExposed;
      forAllSystems = nixpkgs.lib.genAttrs supportedSystems;

      mkNixosSystem =
        hostname: system:
        nixpkgs.lib.nixosSystem {
          inherit system;

          specialArgs = {
            inherit inputs hostname;
            inputs' = builtins.mapAttrs (_: flake: {
              legacyPackages = flake.legacyPackages.${system} or { };
              packages = flake.packages.${system} or { };
            }) inputs;
          };

          modules = [
            ./hosts/common
            ./hosts/${hostname}
          ];
        };
    in
    {
      formatter = forAllSystems (
        system:
        let
          pkgs = nixpkgs.legacyPackages.${system};
        in
        pkgs.nixfmt
      );

      nixosConfigurations = {
        dahlia = mkNixosSystem "dahlia" "x86_64-linux";
        ivy = mkNixosSystem "ivy" "x86_64-linux";
      };

      homeConfigurations = {
        "apr@dahlia" = home-manager.lib.homeManagerConfiguration {
          pkgs = nixpkgs.legacyPackages."x86_64-linux";
          extraSpecialArgs = {
            inherit inputs;
            hostname = "dahlia";
          };
          modules = [
            ./home/apr-dahlia.nix
            inputs.ironbar.homeManagerModules.default
          ];
        };

        "apr@ivy" = home-manager.lib.homeManagerConfiguration {
          pkgs = nixpkgs.legacyPackages."x86_64-linux";
          extraSpecialArgs = {
            inherit inputs;
            hostname = "ivy";
          };
          modules = [ ./home/apr-ivy.nix ];
        };
      };
    };
}