laptop-config/flake.nix
2026-05-16 16:04:16 -07:00

105 lines
2.8 KiB
Nix

{
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/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/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/wgu.nix
];
};
};
}
];
};
homeConfigurations.sscoble = home-manager.lib.homeManagerConfiguration {
pkgs = nixpkgs.legacyPackages.${darwinSystem};
modules = [
./home/sscoble.nix
./home/wgu.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)"
'';
};
};
}