diff --git a/README.md b/README.md index 341925c..dd3dd62 100644 --- a/README.md +++ b/README.md @@ -11,6 +11,7 @@ Le projet est construit avec une chaîne `mkarchiso` adaptée pour fonctionner * - **Base** : Arch Linux (rolling release) - **Installeur** : Calamares (compilé depuis l'AUR, servi via un repo local pacman) - **Affichage live** : Xorg + Openbox, lancement automatique de Calamares +- **Bureau installé** : XFCE + LightDM avec autologin du premier compte créé - **Boot** : BIOS (syslinux) + UEFI (systemd-boot) - **Compression** : squashfs (xz) - **Build** : Windows + WSL (Arch) ou directement depuis Arch @@ -59,6 +60,7 @@ Les deux scripts détectent automatiquement s'ils sont lancés depuis **Git Bash 3. `xorg-start.service` → `Xorg :0` 4. `calamares.service` → `DISPLAY=:0 calamares` 5. **Fallback** : si les services échouent, `.zprofile` relance Xorg + Openbox + Calamares manuellement +6. Après installation, le système démarre sur LightDM puis ouvre automatiquement la session XFCE du compte installé ## Test rapide en QEMU diff --git a/configs/baseline/airootfs/etc/calamares/modules/services-systemd.conf b/configs/baseline/airootfs/etc/calamares/modules/services-systemd.conf index 491c59c..d12bc78 100644 --- a/configs/baseline/airootfs/etc/calamares/modules/services-systemd.conf +++ b/configs/baseline/airootfs/etc/calamares/modules/services-systemd.conf @@ -12,6 +12,10 @@ units: action: "enable" mandatory: false + - name: "lightdm.service" + action: "enable" + mandatory: true + - name: "sshd.service" action: "enable" mandatory: false diff --git a/configs/baseline/airootfs/etc/calamares/modules/shellprocess.conf b/configs/baseline/airootfs/etc/calamares/modules/shellprocess.conf index 9339f8d..42c9fc9 100644 --- a/configs/baseline/airootfs/etc/calamares/modules/shellprocess.conf +++ b/configs/baseline/airootfs/etc/calamares/modules/shellprocess.conf @@ -9,6 +9,11 @@ script: # Copie le kernel depuis l'ISO vers /boot du système cible - 'cp "$(find /run/archiso/bootmnt -name vmlinuz-linux 2>/dev/null | head -1)" "${ROOT}/boot/vmlinuz-linux"' + # Configure LightDM pour démarrer automatiquement la session XFCE du premier utilisateur créé. + - 'FIRST_USER="$(awk -F: ''$$3 >= 1000 && $$1 != "nobody" { print $$1; exit }'' "${ROOT}/etc/passwd")"' + - 'if [ -n "$$FIRST_USER" ]; then mkdir -p "${ROOT}/etc/lightdm/lightdm.conf.d"; printf ''[Seat:*]\nautologin-user=%s\nautologin-user-timeout=0\nuser-session=xfce\nautologin-session=xfce\ngreeter-hide-users=true\nallow-guest=false\n'' "$$FIRST_USER" > "${ROOT}/etc/lightdm/lightdm.conf.d/50-fws.conf"; fi' + - 'if [ -n "$$FIRST_USER" ] && [ -d "${ROOT}/home/$$FIRST_USER" ]; then printf ''[Desktop]\nSession=xfce\n'' > "${ROOT}/home/$$FIRST_USER/.dmrc"; fi' + # Supprime le drop-in archiso (surcharge HOOKS avec des hooks inexistants post-install) - '-rm -f "${ROOT}/etc/mkinitcpio.conf.d/archiso.conf"' diff --git a/configs/baseline/airootfs/etc/calamares/modules/users.conf b/configs/baseline/airootfs/etc/calamares/modules/users.conf index ba9edb0..c40dd72 100644 --- a/configs/baseline/airootfs/etc/calamares/modules/users.conf +++ b/configs/baseline/airootfs/etc/calamares/modules/users.conf @@ -12,7 +12,7 @@ defaultGroups: autologinGroup: autologin sudoersGroup: wheel setRootPassword: true -doAutologin: false +doAutologin: true userShell: /bin/bash passwordRequirements: diff --git a/configs/baseline/airootfs/root/.xinitrc b/configs/baseline/airootfs/root/.xinitrc index 78d4489..53ca1df 100644 --- a/configs/baseline/airootfs/root/.xinitrc +++ b/configs/baseline/airootfs/root/.xinitrc @@ -1,5 +1,9 @@ #!/bin/sh -# Lancé par startx (cf. /root/.zprofile) +# Lancé par startx (cf. /root/.zprofile), uniquement dans le live FWS. +if [ ! -d /run/archiso ]; then + exit 0 +fi + xsetroot -solid "#1a1a2e" openbox & sleep 1 diff --git a/configs/baseline/airootfs/root/.zprofile b/configs/baseline/airootfs/root/.zprofile index d168f55..13a438d 100644 --- a/configs/baseline/airootfs/root/.zprofile +++ b/configs/baseline/airootfs/root/.zprofile @@ -1,5 +1,5 @@ -# Démarrage automatique de Xorg + Calamares sur tty1 (autologin root). -# La session X exécute /root/.xinitrc qui lance Openbox + Calamares. -if [[ "$(tty)" == "/dev/tty1" && -z "$DISPLAY" ]]; then +# Démarrage automatique de Xorg + Calamares uniquement dans le live FWS. +# Sur le système installé, /run/archiso n'existe pas, donc rien ne se lance. +if [[ -d /run/archiso && "$(tty)" == "/dev/tty1" && -z "$DISPLAY" ]]; then exec startx -- vt1 fi diff --git a/configs/baseline/packages.x86_64 b/configs/baseline/packages.x86_64 index 6e993a2..f94ce57 100644 --- a/configs/baseline/packages.x86_64 +++ b/configs/baseline/packages.x86_64 @@ -93,6 +93,12 @@ xorg-xsetroot openbox ttf-dejavu +# --- Bureau FWS installé --- +xfce4 +xfce4-goodies +lightdm +lightdm-gtk-greeter + # --- Calamares (fournis par fws-local) --- calamares kpmcore diff --git a/configs/releng/airootfs/etc/calamares/modules/services-systemd.conf b/configs/releng/airootfs/etc/calamares/modules/services-systemd.conf index b503478..e1e8c29 100644 --- a/configs/releng/airootfs/etc/calamares/modules/services-systemd.conf +++ b/configs/releng/airootfs/etc/calamares/modules/services-systemd.conf @@ -16,6 +16,10 @@ services: - name: systemd-timesyncd mandatory: true + # Gestionnaire de session graphique + - name: lightdm + mandatory: true + # Ajoute ici tes services FWS supplémentaires # - name: mon-service-fws # mandatory: false diff --git a/configs/releng/airootfs/etc/calamares/modules/users.conf b/configs/releng/airootfs/etc/calamares/modules/users.conf index 4335a59..6966d4d 100644 --- a/configs/releng/airootfs/etc/calamares/modules/users.conf +++ b/configs/releng/airootfs/etc/calamares/modules/users.conf @@ -17,6 +17,7 @@ defaultGroups: # Autoriser le login automatique autologinGroup: autologin +doAutologin: true # Sudoers — donne les droits sudo au groupe wheel sudoersGroup: wheel diff --git a/configs/releng/packages.x86_64 b/configs/releng/packages.x86_64 index 6e993a2..f94ce57 100644 --- a/configs/releng/packages.x86_64 +++ b/configs/releng/packages.x86_64 @@ -93,6 +93,12 @@ xorg-xsetroot openbox ttf-dejavu +# --- Bureau FWS installé --- +xfce4 +xfce4-goodies +lightdm +lightdm-gtk-greeter + # --- Calamares (fournis par fws-local) --- calamares kpmcore