diff --git a/.gitignore b/.gitignore deleted file mode 100644 index 9f11b75..0000000 --- a/.gitignore +++ /dev/null @@ -1 +0,0 @@ -.idea/ diff --git a/CLAUDE.md b/CLAUDE.md deleted file mode 100644 index 3c2391f..0000000 --- a/CLAUDE.md +++ /dev/null @@ -1,65 +0,0 @@ -# CLAUDE.md - -This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository. - -## Overview - -Personal NixOS flake-based configuration using [Numtide Blueprint](https://github.com/numtide/blueprint) for multi-host management. Manages three hosts with Home Manager for user environments. - -## Commands - -```bash -# Rebuild and switch the current host -sudo nixos-rebuild switch --flake .#$(hostname) - -# Test without applying -sudo nixos-rebuild test --flake .#$(hostname) - -# Apply home-manager for a user -home-manager switch --flake .#julien@LAPTOP-032 -home-manager switch --flake .#jhemono@gwiad - -# Update flake inputs -nix flake update -nix flake update nixpkgs-unstable # single input -``` - -## Architecture - -Blueprint auto-discovers hosts and modules — no manual registration needed. - -``` -flake.nix (Blueprint orchestrator) -modules/ - nixos/ - base.nix — common system settings (bootloader, timezone, Nix store GC, system packages) - jhemono.nix — jhemono user account + SSH authorized keys - home/ - user.nix — custom options: user.name, user.email - base.nix — shell (Fish), editor (Helix) - git.nix — Git + Jujutsu + GitHub CLI -hosts/ - gwiad/ — ThinkPad T14 AMD workstation, Sway/Wayland - sesame/ — home server (Forgejo, Nextcloud, Mailu, Nginx, sops-nix secrets) - LAPTOP-032/ — work laptop, GNOME -``` - -## Hosts - -**gwiad** — personal workstation -- nixos-hardware: `lenovo-thinkpad-t14-amd-gen3` -- Sway + Waybar, btrbk snapshots, syncthing - -**sesame** — home server (`*.hemono.fr` domains) -- Services: Forgejo (`git`), Nextcloud (`suite`), Mailu (`mail`), Transmission, Syncthing -- All HTTPS via ACME; SSH-key-only access -- Secrets via sops-nix (private `mysecrets` repo) - -**LAPTOP-032** — work laptop -- GNOME/GDM, Docker (rootless), claude-code (from `nixpkgs-unstable`), UV, Node.js - -## Key Conventions - -- `nixpkgs-unstable` overlay is used when a package isn't available or outdated in the stable channel (e.g., `claude-code`) -- Home Manager modules receive user info via the custom `user.name` / `user.email` options defined in `modules/home/user.nix` -- Host-specific files live entirely under `hosts//`; shared logic goes in `modules/` diff --git a/flake.lock b/flake.lock index 112a0ab..9c21f9b 100644 --- a/flake.lock +++ b/flake.lock @@ -92,22 +92,6 @@ "type": "github" } }, - "nixpkgs-unstable": { - "locked": { - "lastModified": 1774106199, - "narHash": "sha256-US5Tda2sKmjrg2lNHQL3jRQ6p96cgfWh3J1QBliQ8Ws=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "6c9a78c09ff4d6c21d0319114873508a6ec01655", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, "root": { "inputs": { "blueprint": "blueprint", @@ -115,7 +99,6 @@ "mysecrets": "mysecrets", "nixos-hardware": "nixos-hardware", "nixpkgs": "nixpkgs", - "nixpkgs-unstable": "nixpkgs-unstable", "sops-nix": "sops-nix" } }, diff --git a/flake.nix b/flake.nix index ea89a4b..0d6bd56 100644 --- a/flake.nix +++ b/flake.nix @@ -3,7 +3,6 @@ inputs = { nixpkgs.url = "github:nixos/nixpkgs/nixos-25.11"; - nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable"; blueprint = { url = "github:numtide/blueprint"; diff --git a/hosts/LAPTOP-032/users/julien.nix b/hosts/LAPTOP-032/users/julien.nix index fc8ab44..d800561 100644 --- a/hosts/LAPTOP-032/users/julien.nix +++ b/hosts/LAPTOP-032/users/julien.nix @@ -1,13 +1,4 @@ -{ flake, inputs, config, pkgs, ... }: - -let - pkgs-unstable = import inputs.nixpkgs-unstable { - inherit (pkgs) system; - config.allowUnfreePredicate = pkg: builtins.elem (pkgs.lib.getName pkg) [ - "claude-code" - ]; - }; -in +{ flake, config, pkgs, ... }: { @@ -22,17 +13,11 @@ in programs.uv.enable = true; - programs.claude-code = { - enable = true; - package = pkgs-unstable.claude-code; - }; - - programs.lazygit = { + programs.gemini-cli = { enable = true; }; home.packages = with pkgs; [ - wl-clipboard ]; # Let Home Manager install and manage itself.