{ description = "Scobleclaw NixOS + home-manager configuration"; inputs = { nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; home-manager = { url = "github:nix-community/home-manager"; inputs.nixpkgs.follows = "nixpkgs"; }; pi-mono = { url = "git+https://os.scoble.me/forgejo/sscoble/pi-mono.git"; flake = false; }; nixos-hardware.url = "github:NixOS/nixos-hardware/master"; }; outputs = { self, nixpkgs, home-manager, pi-mono, nixos-hardware, ... }@inputs: let linuxSystem = "x86_64-linux"; darwinSystem = "aarch64-darwin"; linuxPkgs = import nixpkgs { system = linuxSystem; overlays = [ self.overlays.default ]; }; in { overlays.default = import ./pi-overlay.nix; nixosConfigurations.laptop = nixpkgs.lib.nixosSystem { system = linuxSystem; modules = [ home-manager.nixosModules.home-manager ./modules/laptop.nix ./modules/hyprland.nix ./modules/virtualization.nix ./modules/t490.nix nixos-hardware.nixosModules.lenovo-thinkpad-t490 { nixpkgs.config.allowUnfree = true; } { nixpkgs.overlays = [ self.overlays.default ]; } { home-manager = { useGlobalPkgs = true; useUserPackages = true; users.sscoble = { imports = [ ./home/sscoble.nix ./home/desktop.nix ./home/pi.nix ./home/wgu.nix ]; }; }; } ]; }; nixosConfigurations.vm = nixpkgs.lib.nixosSystem { system = "aarch64-linux"; modules = [ home-manager.nixosModules.home-manager ./modules/vm.nix { nixpkgs.config.allowUnfree = true; } { nixpkgs.overlays = [ self.overlays.default ]; } { home-manager = { useGlobalPkgs = true; useUserPackages = true; users.sscoble = { imports = [ ./home/sscoble.nix ./home/pi.nix ./home/wgu.nix ]; }; }; } ]; }; homeConfigurations.sscoble = home-manager.lib.homeManagerConfiguration { pkgs = nixpkgs.legacyPackages.${darwinSystem}; modules = [ ./home/sscoble.nix ./home/pi.nix ./home/wgu.nix ./home/macos.nix { home.homeDirectory = "/Users/sscoble"; nixpkgs.config.allowUnfree = true; } ]; }; devShells.${linuxSystem}.default = linuxPkgs.mkShell { buildInputs = with linuxPkgs; [ qmd nodejs bun git zsh ]; shellHook = '' echo "Scobleclaw dev shell" echo " pi: $(which pi)" echo " qmd: $(which qmd)" echo " node: $(node --version)" echo " bun: $(bun --version)" ''; }; }; }