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:
@@ -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 = {
|
||||||
|
|||||||
@@ -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
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user