La section « Appliquer les changements » de CLAUDE.md citait `sudo nixos-rebuild switch` en direct alors que le Makefile expose `make apply`. On pointe la cible make pour que la doc reste alignée avec les commandes réellement utilisées. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2.2 KiB
CLAUDE.md
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
About
NixOS dotfiles for Pierre MARTIN (Lundi Matin — Front-Commerce, LMB, NEIA), using home-manager.
Architecture
nixos/configuration.nix— System-level NixOS config (bootloader, networking, services, system packages). Importshardware-configuration.nixetframework.nix.home.nix— Entry point home-manager. Importepackages.nixet les modules deprograms/. Mappe aussi les fichiers statiques depuisfiles/.packages.nix— Tous les packages utilisateur (avec allowlist unfree).programs/— Modules home-manager par programme :git.nix,zsh.nix,i3.nix,neia.nix.files/— Fichiers de config statiques copiés dans$HOMEpar home-manager (.npmrc,traefik.toml, etc.).
Home-manager est intégré au module NixOS (pas standalone). Appliquer avec sudo nixos-rebuild switch.
Commands
make fmt # Formater .nix (nixfmt) et .sh (shfmt)
make lint # Linter les .sh avec shellcheck
make check # Vérifier le formatage sans modifier
make clean # Supprimer .direnv et result
Formatter Nix : nixfmt.
Appliquer les changements
Après modification des fichiers nix, appliquer avec :
make apply # = sudo nixos-rebuild switch
Cette commande applique à la fois la config système (nixos/) et home-manager (home.nix, packages.nix, programs/). Un redémarrage n'est pas nécessaire sauf changement kernel/bootloader.
Si un package unfree est ajouté dans packages.nix, il faut aussi l'ajouter dans nixpkgs.config.allowUnfreePredicate (même fichier).
Si un nouveau module programme est créé dans programs/, il faut l'importer dans home.nix.
Après modification de fichiers .sh, lancer make fmt && make lint avant d'appliquer.
Key details
- Keyboard layout : bépo (
frvariantbepo) - Window manager : i3 (Mod4)
- Shell : zsh + oh-my-zsh + starship + mcfly
- Terminal : sakura
- Git : difftastic (diffs), meld (merges),
push.autoSetupRemote = true - Node : fnm + bun
- Aliases utiles :
c= claude,p= claude perso,g= git,m= make,dc= docker compose,k/kp= kubectl build/prod