Dépôt de configuration NixOS personnel
| dotfiles | ||
| home/afoucaultc | ||
| hosts | ||
| flake.lock | ||
| flake.nix | ||
| install.sh | ||
| README.md | ||
| update.sh | ||
How to use
Structure :
~/nixos-config/
├── flake.nix # pour fixer la source/version des packages utilisés
│ # permet de fixer la source/version des packages utilisés
├── flake.lock
├── hosts/
│ # configuration système
│ ├── nixos-home/
│ │ # mon host personnel (spécifique à ma machine)
│ └── nixos/
│ ├── configuration.nix # entrée des fichiers de configuration
│ ├── hardware-configuration.nix # fichier hardware généré à l'installation
│ └── config/ # tous fichiers config
│ └── ...
├── home/
│ # configuration user
│ └── afoucaultc/
│ # mon user personnel
│ ├── home.nix # point d'entrée home-manager
│ ├── dotfiles_apps.nix # liens vers mes dossier de configuration
│ └── packages/ # lien vers les packages installés sur mon user
└── ...
Installation :
- Installer NixOS sur clé USB (via Rufus sous windows par exemple)
- Boot sur clé USB
- Suivre les indications (perso: chiffrement LUKS + swap activé + formatage auto)
- Reboot dans NixOS
- Cloner le repo git en utilisant git temporairement via nix shell :
nix-shell -p git --run "git clone https://gitlab.com/afoucaultc/nixos-config.git ~/nixos-config" - Lancer le
./install(copie hardware-configuration dans le host, ajoute le host, lance un rebuild) - C'est fini, reboot et lancer la nouvelle version avec Grub
Warning
Il peut y avoir besoin d'ajouter un utilisateur pour git, à voir par la suite Pour les GPU ou CPU spécifiques, des changements peuvent être nécessaires, à adapter
Installer un nouveau package et mettre à jour
Pour update
nix flake update
sudo nixos-rebuild switch --flake ~/nixos-config#nixos-home
Pour trouver un nouveau package :
nix search nixpkgs nom_du_package
Pour savoir où le déclarer :
- system wide : dans hosts
- user-level : dans home
Pour savoir comment le déclarer :
- Avec un module
programs.*s'il existe (à préférer, voir lien) - Avec
home.packages(home.packages = [ pkgs.xxx ];)
Pour gérer la version
- version trop ancienne : référencer
pkgs-unstable.xxx - Package pas encore dans nixpkgs : chercher un flake upstream officiel (packages..degault), ajouter comme input et le référencer