flake.nix

Branches > main > 2f6dffc > files / nixos / flake.nix

## What the fuck is flakes this shit makes no sense
{
  description = "Grahp Flake";

  inputs = {
    nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-unstable";
    home-manager.url = "github:nix-community/home-manager";
    home-manager.inputs.nixpkgs.follows = "nixpkgs";
    claude-code.url = "github:sadjow/claude-code-nix";
    claude-code.inputs.nixpkgs.follows = "nixpkgs";
    ## Newer nixpkgs just for the clojure tooling, so I can bump it without updating everything
    nixpkgs-clojure.url = "github:nixos/nixpkgs?ref=nixos-unstable";
  };

  outputs = { self, nixpkgs, nixpkgs-clojure, home-manager, claude-code, ... }:
  let
    clojure-overlay = final: prev:
      let new = nixpkgs-clojure.legacyPackages.${prev.stdenv.hostPlatform.system};
      in { inherit (new) clojure-lsp clj-kondo cljfmt; };
  in {
     nixosConfigurations = {
     pc = nixpkgs.lib.nixosSystem {
       modules = [
         ./machines/pc/configuration.nix
         { nixpkgs.overlays = [ claude-code.overlays.default clojure-overlay ]; }
         home-manager.nixosModules.home-manager
         {
           home-manager.useGlobalPkgs = true;
           home-manager.useUserPackages = true;
           home-manager.users.grahp = {
             imports = [
               ./machines/pc/home.nix
             ];
           };
         }
       ];
     };
     chromebook = nixpkgs.lib.nixosSystem {
       modules = [
         ./machines/chromebook/configuration.nix
         { nixpkgs.overlays = [ claude-code.overlays.default clojure-overlay ]; }
         home-manager.nixosModules.home-manager
         {
           home-manager.useGlobalPkgs = true;
           home-manager.useUserPackages = true;
           home-manager.users.grahp = {
             imports = [
               ./machines/chromebook/home.nix
             ];
           };
         }
       ];
     };
    };
  };
}