{ description = "Geoffrey Frogeye's base configurations"; inputs = { nixpkgs.url = "nixpkgs/nixos-23.11"; # OS disko = { url = "disko"; inputs.nixpkgs.follows = "nixpkgs"; }; nixos-hardware.url = "nixos-hardware"; # NOD nix-on-droid = { url = "github:nix-community/nix-on-droid"; # No 23.11 :( inputs.nixpkgs.follows = "nixpkgs"; }; # HM home-manager = { url = "home-manager/release-23.11"; inputs.nixpkgs.follows = "nixpkgs"; }; stylix = { url = "github:danth/stylix"; inputs.nixpkgs.follows = "nixpkgs"; }; nixvim = { url = "github:nix-community/nixvim/c96d7b46d05a78e695ed1c725d1596b65509b4f9"; # 24.05 Anything after this commit works inputs.nixpkgs.follows = "nixpkgs"; }; nixgl = { url = "github:guibou/nixGL"; inputs.nixpkgs.follows = "nixpkgs"; }; nur.url = "github:nix-community/NUR"; }; outputs = { self, nixpkgs, disko, nixos-hardware, nix-on-droid, home-manager, stylix, nixvim, nixgl, nur, ... }: let sharedOverlays = [ nixgl.overlay ]; lib = { nixosSystem = { system, modules ? [ ] }: nixpkgs.lib.nixosSystem { inherit system; modules = modules ++ [ self.nixosModules.dotfiles { nixpkgs.overlays = sharedOverlays; home-manager.sharedModules = [ self.homeManagerModules.dotfiles ]; } ]; }; nixOnDroidConfiguration = { modules ? [ ] }: nix-on-droid.lib.nixOnDroidConfiguration { modules = modules ++ [ self.nixOnDroidModules.dotfiles { nixpkgs.overlays = sharedOverlays; home-manager.sharedModules = [ self.homeManagerModules.dotfiles ]; } ]; }; homeManagerConfiguration = { system, modules ? [ ] }: home-manager.lib.homeManagerConfiguration { pkgs = import nixpkgs { inherit system; overlays = sharedOverlays; }; modules = modules ++ [ self.homeManagerModules.dotfiles ]; }; }; in { lib = lib; nixosModules.dotfiles = { imports = [ ./os disko.nixosModules.disko home-manager.nixosModules.home-manager ]; }; nixOnDroidModules.dotfiles = { imports = [ ./nod home-manager.nixosModules.home-manager ]; }; homeManagerModules.dotfiles = { imports = [ ./hm stylix.homeManagerModules.stylix nixvim.homeManagerModules.nixvim nur.hmModules.nur ]; }; nixosConfigurations.curacao = lib.nixosSystem { system = "x86_64-linux"; modules = [ ./curacao/os.nix nixos-hardware.nixosModules.dell-g3-3779 ]; }; nixosConfigurations.pindakaas = lib.nixosSystem { system = "aarch64-linux"; modules = [ ./pindakaas/os.nix nixos-hardware.nixosModules.pine64-pinebook-pro ]; }; nixOnDroidConfigurations.sprinkles = lib.nixOnDroidConfiguration { }; }; }