flake.nix
Branches > main > b31b6de > 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
];
};
}
];
};
};
};
}