Persiste la config sur /etc/nixos à l'install, firmware wifi, wallpaper par défaut

- install.sh: copie le repo (clone substitué) vers /mnt/etc/nixos après
  nixos-install, sinon la machine installée n'a aucun fichier à éditer
- base.nix: hardware.enableRedistributableFirmware pour les cartes wifi
  nécessitant un firmware non-libre
- desktop.nix: fond d'écran NixOS par défaut via dconf (n'existait pas)

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
2026-09-09 16:53:08 +02:00
co-authored by Claude Sonnet 5
parent 096e534e91
commit 77b089bc45
4 changed files with 53 additions and 2 deletions
+9 -1
View File
@@ -1,5 +1,5 @@
# Socle commun à toutes les machines de la flotte (repo public). # Socle commun à toutes les machines de la flotte (repo public).
{ pkgs, ... }: { pkgs, lib, ... }:
{ {
# Toutes les machines de la flotte portent le même nom : pas # Toutes les machines de la flotte portent le même nom : pas
@@ -9,6 +9,14 @@
networking.hostName = "Nixos_Fleet"; networking.hostName = "Nixos_Fleet";
networking.networkmanager.enable = true; networking.networkmanager.enable = true;
# Sans ça, les firmwares non-libres (wifi/Bluetooth Broadcom, Realtek,
# Intel...) ne sont pas inclus dans le système. Sur un parc de PC
# hétérogène et inconnu à l'avance, une partie aura besoin de ces
# firmwares pour que la carte wifi soit seulement détectée (option
# documentée : nixos.wiki/wiki/NixOS_Installation_Guide, section
# firmware). mkDefault : un profil peut désactiver au cas par cas.
hardware.enableRedistributableFirmware = lib.mkDefault true;
time.timeZone = "Europe/Paris"; time.timeZone = "Europe/Paris";
i18n.defaultLocale = "fr_FR.UTF-8"; i18n.defaultLocale = "fr_FR.UTF-8";
i18n.extraLocaleSettings = { i18n.extraLocaleSettings = {
+12
View File
@@ -6,6 +6,7 @@
{ {
services.xserver.enable = true; services.xserver.enable = true;
services.xserver.displayManager.lightdm.enable = true; services.xserver.displayManager.lightdm.enable = true;
services.xserver.displayManager.lightdm.background = "/etc/nixos/hosts/common/wallpaper/Nix/13977413.png";
services.xserver.desktopManager.cinnamon.enable = true; services.xserver.desktopManager.cinnamon.enable = true;
services.accounts-daemon.enable = true; services.accounts-daemon.enable = true;
@@ -14,6 +15,17 @@
warpinator warpinator
]; ];
# Fond d'écran par défaut (juste le logo NixOS, pas la galerie perso de
# nixos_cinnamon -- repo public, on n'y met que ce qui est nécessaire).
# Ce chemin (/etc/nixos) suppose la config installée là -- voir
# nixos_fleet/installer/install.sh (do_install copie le clone sur le
# disque cible après nixos-install).
environment.etc."dconf/db/local.d/00-background".text = ''
[org/cinnamon/desktop/background]
picture-uri='file:///etc/nixos/hosts/common/wallpaper/Nix/13977413.png'
'';
system.activationScripts.dconfUpdate.text = "${pkgs.dconf}/bin/dconf update";
# Réglages de confidentialité génériques (pas de SearXNG/DNS personnels # Réglages de confidentialité génériques (pas de SearXNG/DNS personnels
# comme sur le poste perso — cette config est destinée à être publique). # comme sur le poste perso — cette config est destinée à être publique).
programs.firefox = { programs.firefox = {
Binary file not shown.

After

Width:  |  Height:  |  Size: 146 KiB

+32 -1
View File
@@ -92,6 +92,32 @@ do_install() {
swapoff /mnt/.install-swapfile swapoff /mnt/.install-swapfile
rm -f /mnt/.install-swapfile rm -f /mnt/.install-swapfile
# Sans cette étape, la machine installée n'a AUCUNE config sur son
# disque : le clone ci-dessus vit dans /tmp de l'environnement live, en
# RAM, effacé au reboot. La convergence auto (system.autoUpgrade, voir
# hosts/common/base.nix) continue de fonctionner sans ça (elle pointe
# sur l'URL distante), mais un technicien qui arrive sur la machine
# après coup n'a alors ni /etc/nixos, ni moyen d'ajouter/enlever un
# paquet à la main. On installe donc le même clone (déjà substitué avec
# le vrai disque) à l'emplacement standard NixOS, en conservant .git
# pour que `git pull`/`git log` marchent dessus normalement ensuite.
echo "Installation de la configuration dans /mnt/etc/nixos..."
rm -rf /mnt/etc/nixos
mkdir -p /mnt/etc
cp -a "$repo_dir" /mnt/etc/nixos
# Le disque cible a été substitué localement (sed plus haut) : ce fichier
# diffère donc de ce qui est sur git (placeholder). On le committe en
# local (jamais poussé) pour que `git status` reste propre sur la
# machine installée -- sinon chaque `git pull` ultérieur affiche un
# fichier modifié, source de confusion pour un technicien.
git -C /mnt/etc/nixos \
-c user.name="Installeur Nixos_Fleet" \
-c user.email="installeur@nixos-fleet.local" \
commit -aqm "Substitution locale du disque cible ($DEVICE)"
INSTALLED_ATTR="$attr"
} }
echo "=== Installeur Nixos_Fleet ===" echo "=== Installeur Nixos_Fleet ==="
@@ -190,6 +216,11 @@ case "$CHOICE" in
esac esac
echo echo
echo "Installation terminée. Redémarrage dans 10s (Ctrl-C pour annuler et inspecter /mnt)..." echo "Installation terminée."
echo "Config installée dans /etc/nixos (attribut : ${INSTALLED_ATTR})."
echo "Pour ajouter/enlever un paquet après le premier démarrage :"
echo " 1. éditer les fichiers dans /etc/nixos"
echo " 2. nixos-rebuild switch --flake /etc/nixos#${INSTALLED_ATTR}"
echo "Redémarrage dans 10s (Ctrl-C pour annuler et inspecter /mnt)..."
sleep 10 sleep 10
reboot reboot