Unifie le compte generique flotte : usagers -> nixos (compte, attribut, dossier)
Renomme partout (flake.nix, hosts/usagers -> hosts/nixos, install.sh, autoUpgrade.flake, home-manager.users, README) pour que compte systeme, attribut de flake et mot de passe portent tous le meme nom "nixos" -- un seul mot a retenir sur un poste partage. Remplace aussi hosts/nixos/dconf.ini (jusque-la un seul reglage, le fond d'ecran) par le dconf complet d'oreo (panneau, themes, reglages GTK/Nemo...), chemins de wallpaper adaptes vers hosts/common/wallpaper (partage, pas par-profil). Warpinator connect-id retire du dconf copie : deja exclu du bureau Cinnamon sur les trois profils (fleet/thomas-clara-jade/oreo) via environment.cinnamon.excludePackages, une valeur figee partagee par tout le parc aurait de toute facon casse l'appairage si le paquet avait ete present. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
# Nixos_Fleet
|
||||
|
||||
Déploiement en masse (PXE ou USB) du profil générique `usagers`.
|
||||
Déploiement en masse (PXE ou USB) du profil générique `nixos`.
|
||||
|
||||
Repo public. `git pull` sans mot de passe.
|
||||
|
||||
@@ -122,11 +122,11 @@ N'y touche pas.
|
||||
|
||||
PC normal :
|
||||
|
||||
Utilisateur : `usagers`
|
||||
Utilisateur : `nixos`
|
||||
|
||||
Mot de passe : `nixos`
|
||||
|
||||
Mot de passe stable, ne change jamais tout seul et n'est jamais redemandé (poste partagé, pas nominatif -- voir "Réactiver un changement de mot de passe forcé" en référence si ça doit changer un jour).
|
||||
Utilisateur et mot de passe identiques, volontairement (un seul mot à retenir sur un poste partagé). Stable, ne change jamais tout seul et n'est jamais redemandé (voir "Réactiver un changement de mot de passe forcé" en référence si ça doit changer un jour).
|
||||
|
||||
PC pour une personne :
|
||||
|
||||
@@ -313,7 +313,7 @@ IP qui changent tout le temps → un autre DHCP tourne déjà, repasser `standal
|
||||
|
||||
## Contenu du repo
|
||||
|
||||
`hosts/usagers/` → le seul profil du repo. Jamais chiffré.
|
||||
`hosts/nixos/` → le seul profil du repo. Jamais chiffré.
|
||||
|
||||
`diskos/plain.nix` → layout disko (disque `main`, GPT+ESP+btrfs).
|
||||
|
||||
@@ -323,7 +323,7 @@ IP qui changent tout le temps → un autre DHCP tourne déjà, repasser `standal
|
||||
|
||||
## Personnaliser le bureau (dconf)
|
||||
|
||||
`hosts/usagers/dconf.ini` contient les réglages Cinnamon (thème, fond d'écran, panneau...), chargés par home-manager à chaque rebuild.
|
||||
`hosts/nixos/dconf.ini` contient les réglages Cinnamon (thème, fond d'écran, panneau...), chargés par home-manager à chaque rebuild.
|
||||
|
||||
Pour changer un réglage : le faire en direct dans l'interface Cinnamon sur une machine, puis exporter :
|
||||
|
||||
@@ -331,11 +331,11 @@ Pour changer un réglage : le faire en direct dans l'interface Cinnamon sur une
|
||||
dconf dump /org/cinnamon/ > dconf.ini
|
||||
```
|
||||
|
||||
Remplacer `hosts/usagers/dconf.ini` par ce fichier, commit, push. Rien à changer dans le `.nix`.
|
||||
Remplacer `hosts/nixos/dconf.ini` par ce fichier, commit, push. Rien à changer dans le `.nix`.
|
||||
|
||||
## Réactiver un changement de mot de passe forcé
|
||||
|
||||
Par défaut, `usagers` garde `nixos` comme mot de passe stable, sans expiration (`hosts/usagers/configuration.nix`). Voulu : poste partagé, pas nominatif -- forcer un changement casserait le mot de passe commun affiché sur l'étiquette/le guide remis aux gens.
|
||||
Par défaut, le compte `nixos` garde `nixos` comme mot de passe stable, sans expiration (`hosts/nixos/configuration.nix`). Voulu : poste partagé, pas nominatif -- forcer un changement casserait le mot de passe commun affiché sur l'étiquette/le guide remis aux gens.
|
||||
|
||||
`nixos_users` force ce changement au premier login pour les postes nominatifs, via un script d'activation one-shot (`hosts/common/accounts.nix` de ce repo-là) :
|
||||
|
||||
@@ -343,14 +343,14 @@ Par défaut, `usagers` garde `nixos` comme mot de passe stable, sans expiration
|
||||
system.activationScripts.forcePasswordChangeOnce.text = ''
|
||||
marker=/var/lib/nixos-force-pwchange-done
|
||||
if [ ! -e "$marker" ]; then
|
||||
${pkgs.shadow}/bin/chage -d 0 usagers
|
||||
${pkgs.shadow}/bin/chage -d 0 nixos
|
||||
mkdir -p /var/lib
|
||||
touch "$marker"
|
||||
fi
|
||||
'';
|
||||
```
|
||||
|
||||
Pour réactiver la même chose sur `usagers`, reprendre ce bloc tel quel dans `hosts/usagers/configuration.nix` (ou `hosts/common/default.nix` si ça doit s'appliquer à un futur deuxième profil de flotte). Le marqueur est nécessaire : sans lui, `chage -d 0` s'appliquerait à nouveau à chaque `nixos-rebuild switch`, redemandant un mot de passe à chaque redémarrage.
|
||||
Pour réactiver la même chose sur `nixos`, reprendre ce bloc tel quel dans `hosts/nixos/configuration.nix` (ou `hosts/common/default.nix` si ça doit s'appliquer à un futur deuxième profil de flotte). Le marqueur est nécessaire : sans lui, `chage -d 0` s'appliquerait à nouveau à chaque `nixos-rebuild switch`, redemandant un mot de passe à chaque redémarrage.
|
||||
|
||||
## Pourquoi deux repos
|
||||
|
||||
@@ -417,7 +417,7 @@ sudo systemctl start nixos-upgrade.service
|
||||
```bash
|
||||
cd /etc/nixos
|
||||
sudo git pull
|
||||
sudo nixos-rebuild switch --flake .#usagers
|
||||
sudo nixos-rebuild switch --flake .#nixos
|
||||
```
|
||||
|
||||
Le `git pull` est obligatoire ici : contrairement à `nixos-upgrade.service`, ce rebuild lit les fichiers locaux de `/etc/nixos`, pas l'URL distante.
|
||||
@@ -436,16 +436,16 @@ Boot BIOS et boot UEFI, sur le parc réel.
|
||||
|
||||
Test sur 1-2 PC réels d'abord.
|
||||
|
||||
PC à seulement 4 Go de RAM : le zram (`installer-base.nix`) doit suffire pour installer `usagers` (Cinnamon + Firefox + LibreOffice + VLC), mais pas testé en dessous de 12 Go pour l'instant. Si ça échoue encore sur du 4 Go réel : alléger la liste de paquets de `usagers` plutôt que d'insister sur le zram seul.
|
||||
PC à seulement 4 Go de RAM : le zram (`installer-base.nix`) doit suffire pour installer `nixos` (Cinnamon + Firefox + LibreOffice + VLC), mais pas testé en dessous de 12 Go pour l'instant. Si ça échoue encore sur du 4 Go réel : alléger la liste de paquets de `nixos` plutôt que d'insister sur le zram seul.
|
||||
|
||||
```bash
|
||||
nix flake check --no-build # évalue usagers/installer-netboot/installer-iso
|
||||
nix flake check --no-build # évalue nixos/installer-netboot/installer-iso
|
||||
nix flake check --no-build --impure # inclut pxe-server (lit /etc/nixos, réel sur le serveur seulement)
|
||||
nix build .#nixosConfigurations.usagers.config.system.build.toplevel --dry-run
|
||||
nix build .#nixosConfigurations.nixos.config.system.build.toplevel --dry-run
|
||||
nix build .#nixosConfigurations.installer-iso.config.system.build.isoImage --dry-run
|
||||
```
|
||||
|
||||
Vérifié (WSL, testé le 2026-09-12) : `usagers` s'évalue et résout entièrement sa fermeture de paquets sans erreur. `pxe-server` échoue sans `--impure` en dehors du vrai serveur PXE (attendu, lit `/etc/nixos/hardware-configuration.nix`).
|
||||
Vérifié (WSL, testé le 2026-09-12) : `nixos` s'évalue et résout entièrement sa fermeture de paquets sans erreur. `pxe-server` échoue sans `--impure` en dehors du vrai serveur PXE (attendu, lit `/etc/nixos/hardware-configuration.nix`).
|
||||
|
||||
**Ce que ces commandes ne couvrent pas** : elles vérifient que la config s'évalue et que les paquets existent, pas que le poste installé fonctionne réellement (Wi-Fi, wallpaper, LightDM, avatar...). Seul un test sur machine réelle (étape 8 plus haut) le confirme.
|
||||
|
||||
@@ -494,7 +494,7 @@ Aucun paquet à installer manuellement : `enable = true` suffit dans les deux ca
|
||||
Après édition :
|
||||
|
||||
```bash
|
||||
sudo nixos-rebuild switch --flake .#usagers
|
||||
sudo nixos-rebuild switch --flake .#nixos
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
@@ -21,12 +21,12 @@
|
||||
{ self, nixpkgs, disko, home-manager, ... }:
|
||||
{
|
||||
nixosConfigurations = {
|
||||
usagers = nixpkgs.lib.nixosSystem {
|
||||
nixos = nixpkgs.lib.nixosSystem {
|
||||
system = "x86_64-linux";
|
||||
modules = [
|
||||
disko.nixosModules.disko
|
||||
home-manager.nixosModules.home-manager
|
||||
./hosts/usagers/configuration.nix
|
||||
./hosts/nixos/configuration.nix
|
||||
];
|
||||
};
|
||||
|
||||
|
||||
@@ -172,7 +172,7 @@ in
|
||||
enable = true;
|
||||
persistent = true;
|
||||
dates = "weekly";
|
||||
flake = "git+https://gitea.miniclic.net/Damien/Nixos_Fleet.git#usagers";
|
||||
flake = "git+https://gitea.miniclic.net/Damien/Nixos_Fleet.git#nixos";
|
||||
};
|
||||
|
||||
# Compte admin de la flotte : root, mot de passe "nixos" STABLE (pas
|
||||
@@ -200,15 +200,17 @@ in
|
||||
];
|
||||
|
||||
# dconf par utilisateur via home-manager, chargé depuis un fichier ini
|
||||
# brut (hosts/usagers/dconf.ini) plutôt que du dconf.settings typé --
|
||||
# brut (hosts/nixos/dconf.ini) plutôt que du dconf.settings typé --
|
||||
# même mécanisme que oreo (nixos_users), pour la même raison : ça se
|
||||
# met à jour par un simple `dconf dump /org/cinnamon/ > dconf.ini` +
|
||||
# commit depuis une machine réelle, pas en retranscrivant chaque clé à
|
||||
# la main en Nix. Seed minimal ici (juste le fond d'écran par défaut),
|
||||
# à enrichir plus tard de la même façon.
|
||||
# la main en Nix. Repris tel quel du dconf d'oreo (panneau, thèmes,
|
||||
# réglages GTK/Nemo...), sauf le chemin du fond d'écran (commun,
|
||||
# pas par-profil) et l'ID Warpinator (retiré : une valeur fixe
|
||||
# partagée par tout le parc casserait l'appairage).
|
||||
home-manager.useGlobalPkgs = true; # partage le pkgs du système, pas de deuxième évaluation (RAM)
|
||||
home-manager.backupFileExtension = "hm-backup"; # évite un échec si un fichier existe déjà (migration)
|
||||
home-manager.users.usagers =
|
||||
home-manager.users.nixos =
|
||||
{ pkgs, lib, ... }:
|
||||
{
|
||||
home.stateVersion = "26.05";
|
||||
@@ -217,13 +219,13 @@ in
|
||||
# module home-manager dconf.nix officiel (dconf a besoin d'un bus
|
||||
# D-Bus pour écrire, on en lance un temporaire s'il n'y en a pas
|
||||
# déjà un actif).
|
||||
home.activation.usagersDconf = lib.hm.dag.entryAfter [ "writeBoundary" ] ''
|
||||
home.activation.nixosDconf = lib.hm.dag.entryAfter [ "writeBoundary" ] ''
|
||||
if [[ -v DBUS_SESSION_BUS_ADDRESS ]]; then
|
||||
DCONF_DBUS_RUN_SESSION=""
|
||||
else
|
||||
DCONF_DBUS_RUN_SESSION="${pkgs.dbus}/bin/dbus-run-session --dbus-daemon=${pkgs.dbus}/bin/dbus-daemon"
|
||||
fi
|
||||
run $DCONF_DBUS_RUN_SESSION ${pkgs.dconf}/bin/dconf load / < ${../usagers/dconf.ini}
|
||||
run $DCONF_DBUS_RUN_SESSION ${pkgs.dconf}/bin/dconf load / < ${../nixos/dconf.ini}
|
||||
'';
|
||||
};
|
||||
|
||||
|
||||
@@ -0,0 +1,19 @@
|
||||
# Profil générique "nixos" : poste non-nominatif de la flotte.
|
||||
{ ... }:
|
||||
|
||||
{
|
||||
imports = [
|
||||
../common
|
||||
../../diskos/plain.nix
|
||||
];
|
||||
|
||||
# Compte de session non-nominatif, mot de passe "nixos" stable, sans
|
||||
# expiration forcée (voir hosts/common). Nom d'utilisateur "nixos"
|
||||
# aussi, pour unifier avec le mot de passe -- un seul mot à retenir.
|
||||
users.users.nixos = {
|
||||
isNormalUser = true;
|
||||
description = "Nixos";
|
||||
extraGroups = [ "networkmanager" ];
|
||||
initialPassword = "nixos";
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,199 @@
|
||||
[org/cinnamon]
|
||||
enabled-applets=['panel1:left:0:menu@cinnamon.org:0', 'panel1:left:1:separator@cinnamon.org:1', 'panel1:left:2:grouped-window-list@cinnamon.org:2', 'panel1:right:0:systray@cinnamon.org:3', 'panel1:right:1:xapp-status@cinnamon.org:4', 'panel1:right:2:notifications@cinnamon.org:5', 'panel1:right:3:printers@cinnamon.org:6', 'panel1:right:4:removable-drives@cinnamon.org:7', 'panel1:right:5:keyboard@cinnamon.org:8', 'panel1:right:6:favorites@cinnamon.org:9', 'panel1:right:7:network@cinnamon.org:10', 'panel1:right:8:sound@cinnamon.org:11', 'panel1:right:9:power@cinnamon.org:12', 'panel1:right:10:calendar@cinnamon.org:13', 'panel1:right:11:cornerbar@cinnamon.org:14']
|
||||
next-applet-id=15
|
||||
|
||||
[org/cinnamon/desktop/background]
|
||||
picture-uri='file:///etc/nixos/hosts/common/wallpaper/Nix/13977413.png'
|
||||
|
||||
[org/cinnamon/desktop/background/slideshow]
|
||||
delay=15
|
||||
image-source='directory:///etc/nixos/hosts/common/wallpaper/Nix'
|
||||
|
||||
[org/cinnamon/desktop/input-sources]
|
||||
sources=[('xkb', 'fr')]
|
||||
|
||||
[org/cinnamon/desktop/interface]
|
||||
cursor-size=24
|
||||
cursor-theme='Bibata-Modern-Classic'
|
||||
gtk-theme='Mint-Y-Dark-Blue'
|
||||
icon-theme='Mint-Y-Blue'
|
||||
toolkit-accessibility=false
|
||||
|
||||
[org/cinnamon/desktop/peripherals/mouse]
|
||||
double-click=400
|
||||
drag-threshold=8
|
||||
speed=0.0
|
||||
|
||||
[org/cinnamon/desktop/peripherals/touchpad]
|
||||
natural-scroll=false
|
||||
speed=0.0
|
||||
|
||||
[org/cinnamon/desktop/screensaver]
|
||||
layout-group=0
|
||||
|
||||
[org/cinnamon/desktop/sound]
|
||||
event-sounds=false
|
||||
|
||||
[org/cinnamon/gestures]
|
||||
swipe-down-2='PUSH_TILE_DOWN::end'
|
||||
swipe-down-3='TOGGLE_OVERVIEW::end'
|
||||
swipe-down-4='VOLUME_DOWN::end'
|
||||
swipe-left-2='PUSH_TILE_LEFT::end'
|
||||
swipe-left-3='WORKSPACE_NEXT::end'
|
||||
swipe-left-4='WINDOW_WORKSPACE_PREVIOUS::end'
|
||||
swipe-right-2='PUSH_TILE_RIGHT::end'
|
||||
swipe-right-3='WORKSPACE_PREVIOUS::end'
|
||||
swipe-right-4='WINDOW_WORKSPACE_NEXT::end'
|
||||
swipe-up-2='PUSH_TILE_UP::end'
|
||||
swipe-up-3='TOGGLE_EXPO::end'
|
||||
swipe-up-4='VOLUME_UP::end'
|
||||
tap-3='MEDIA_PLAY_PAUSE::end'
|
||||
|
||||
[org/cinnamon/settings-daemon/plugins/color]
|
||||
night-light-enabled=true
|
||||
night-light-last-coordinates=(48.866667, 2.3333330000000001)
|
||||
night-light-schedule-mode='always'
|
||||
night-light-temperature=uint32 5400
|
||||
|
||||
[org/cinnamon/theme]
|
||||
name='Mint-Y-Dark-Blue'
|
||||
|
||||
[org/gnome/desktop/a11y/applications]
|
||||
screen-reader-enabled=false
|
||||
|
||||
[org/gnome/desktop/a11y/mouse]
|
||||
dwell-click-enabled=false
|
||||
dwell-threshold=10
|
||||
dwell-time=1.2
|
||||
secondary-click-enabled=false
|
||||
secondary-click-time=1.2
|
||||
|
||||
[org/gnome/desktop/input-sources]
|
||||
sources=[('xkb', 'fr')]
|
||||
xkb-options=['terminate:ctrl_alt_bksp']
|
||||
|
||||
[org/gnome/desktop/interface]
|
||||
can-change-accels=false
|
||||
clock-show-date=false
|
||||
clock-show-seconds=false
|
||||
cursor-blink=true
|
||||
cursor-blink-time=1200
|
||||
cursor-blink-timeout=10
|
||||
cursor-size=24
|
||||
cursor-theme='Bibata-Modern-Classic'
|
||||
enable-animations=true
|
||||
font-name='Ubuntu 10'
|
||||
gtk-color-palette='black:white:gray50:red:purple:blue:light blue:green:yellow:orange:lavender:brown:goldenrod4:dodger blue:pink:light green:gray10:gray30:gray75:gray90'
|
||||
gtk-color-scheme=''
|
||||
gtk-enable-primary-paste=true
|
||||
gtk-im-module=''
|
||||
gtk-im-preedit-style='callback'
|
||||
gtk-im-status-style='callback'
|
||||
gtk-key-theme='Default'
|
||||
gtk-theme='Mint-Y-Dark-Blue'
|
||||
gtk-timeout-initial=200
|
||||
gtk-timeout-repeat=20
|
||||
icon-theme='Mint-Y-Blue'
|
||||
menubar-accel='F10'
|
||||
menubar-detachable=false
|
||||
menus-have-tearoff=false
|
||||
scaling-factor=uint32 0
|
||||
text-scaling-factor=1.0
|
||||
toolbar-detachable=false
|
||||
toolbar-icons-size='large'
|
||||
toolbar-style='both-horiz'
|
||||
toolkit-accessibility=false
|
||||
|
||||
[org/gnome/desktop/peripherals/mouse]
|
||||
accel-profile='default'
|
||||
double-click=400
|
||||
drag-threshold=8
|
||||
left-handed=false
|
||||
middle-click-emulation=false
|
||||
natural-scroll=false
|
||||
speed=0.0
|
||||
|
||||
[org/gnome/desktop/privacy]
|
||||
disable-camera=false
|
||||
disable-microphone=false
|
||||
disable-sound-output=false
|
||||
old-files-age=uint32 30
|
||||
recent-files-max-age=7
|
||||
remember-recent-files=true
|
||||
remove-old-temp-files=false
|
||||
remove-old-trash-files=false
|
||||
|
||||
[org/gnome/desktop/sound]
|
||||
event-sounds=false
|
||||
input-feedback-sounds=false
|
||||
theme-name='LinuxMint'
|
||||
|
||||
[org/gnome/desktop/wm/preferences]
|
||||
action-double-click-titlebar='toggle-maximize'
|
||||
action-middle-click-titlebar='lower'
|
||||
action-right-click-titlebar='menu'
|
||||
audible-bell=false
|
||||
auto-raise=false
|
||||
auto-raise-delay=500
|
||||
button-layout=':minimize,maximize,close'
|
||||
disable-workarounds=false
|
||||
focus-mode='click'
|
||||
focus-new-windows='smart'
|
||||
mouse-button-modifier='<Alt>'
|
||||
num-workspaces=4
|
||||
raise-on-click=true
|
||||
resize-with-right-button=true
|
||||
theme='Mint-Y'
|
||||
titlebar-font='Ubuntu Medium 10'
|
||||
titlebar-uses-system-font=false
|
||||
visual-bell=false
|
||||
visual-bell-type='fullscreen-flash'
|
||||
workspace-names=@as []
|
||||
|
||||
[org/gnome/file-roller/dialogs/extract]
|
||||
height=800
|
||||
recreate-folders=true
|
||||
skip-newer=false
|
||||
width=1000
|
||||
|
||||
[org/gnome/file-roller/file-selector]
|
||||
show-hidden=false
|
||||
sidebar-size=300
|
||||
sort-method='name'
|
||||
sort-type='ascending'
|
||||
window-size=(-1, -1)
|
||||
|
||||
[org/gnome/file-roller/listing]
|
||||
list-mode='as-folder'
|
||||
name-column-width=57
|
||||
show-path=false
|
||||
sort-method='name'
|
||||
sort-type='ascending'
|
||||
|
||||
[org/gnome/file-roller/ui]
|
||||
sidebar-width=200
|
||||
window-height=480
|
||||
window-width=600
|
||||
|
||||
[org/gtk/settings/file-chooser]
|
||||
date-format='regular'
|
||||
location-mode='path-bar'
|
||||
show-hidden=false
|
||||
show-size-column=true
|
||||
show-type-column=true
|
||||
sidebar-width=176
|
||||
sort-column='name'
|
||||
sort-directories-first=true
|
||||
sort-order='ascending'
|
||||
type-format='category'
|
||||
window-position=(202, 73)
|
||||
window-size=(1096, 822)
|
||||
|
||||
[org/nemo/window-state]
|
||||
geometry='800x550+349+125'
|
||||
maximized=false
|
||||
sidebar-bookmark-breakpoint=3
|
||||
start-with-sidebar=true
|
||||
|
||||
[org/x/apps/portal]
|
||||
color-scheme='prefer-dark'
|
||||
@@ -1,18 +0,0 @@
|
||||
# Profil générique "usagers" : poste non-nominatif de la flotte.
|
||||
{ ... }:
|
||||
|
||||
{
|
||||
imports = [
|
||||
../common
|
||||
../../diskos/plain.nix
|
||||
];
|
||||
|
||||
# Compte de session non-nominatif, mot de passe "nixos" stable, sans
|
||||
# expiration forcée (voir hosts/common).
|
||||
users.users.usagers = {
|
||||
isNormalUser = true;
|
||||
description = "Usagers";
|
||||
extraGroups = [ "networkmanager" ];
|
||||
initialPassword = "nixos";
|
||||
};
|
||||
}
|
||||
@@ -1,2 +0,0 @@
|
||||
[org/cinnamon/desktop/background]
|
||||
picture-uri='file:///etc/nixos/hosts/common/wallpaper/Nix/13977413.png'
|
||||
@@ -132,8 +132,8 @@ fi
|
||||
case "$CHOICE" in
|
||||
1)
|
||||
echo
|
||||
echo "Installation du profil générique 'usagers' sur $DEVICE..."
|
||||
do_install "$FLEET_REPO" "usagers" "diskos/plain.nix"
|
||||
echo "Installation du profil générique 'nixos' sur $DEVICE..."
|
||||
do_install "$FLEET_REPO" "nixos" "diskos/plain.nix"
|
||||
;;
|
||||
|
||||
2)
|
||||
|
||||
Reference in New Issue
Block a user