#!/bin/bash set -euo pipefail fws_first_user() { awk -F: '$3 >= 1000 && $1 != "nobody" { print $1; exit }' /etc/passwd } fws_install_packages() { pacman -Sy --noconfirm --needed "$@" } fws_enable_services() { for service in "$@"; do systemctl enable "$service" >/dev/null 2>&1 || true done } fws_disable_services() { for service in "$@"; do systemctl disable "$service" >/dev/null 2>&1 || true done } # Retire Xfce + LightDM présents dans le squashfs du live system. # Appelé par les scripts KDE / GNOME / Hyprland pour ne pas laisser # les sessions Xfce apparaître dans le sélecteur du DM. fws_remove_xfce() { pacman -Rns --noconfirm xfce4 xfce4-goodies \ lightdm lightdm-gtk-greeter lightdm-gtk-greeter-settings \ 2>/dev/null || true } fws_write_dmrc() { local user_name="$1" local session_name="$2" if [ -n "$user_name" ] && [ -d "/home/$user_name" ]; then printf '[Desktop]\nSession=%s\n' "$session_name" > "/home/$user_name/.dmrc" fi } # Configure SDDM : session par défaut uniquement, PAS d'autologin. # L'utilisateur devra entrer son mot de passe à chaque démarrage. fws_write_sddm_config() { local session_name="$1" mkdir -p /etc/sddm.conf.d printf '[General]\nDefaultSession=%s.desktop\n\n[Theme]\nCurrent=\n' \ "$session_name" \ > /etc/sddm.conf.d/50-fws.conf } # Configure LightDM : session par défaut uniquement, PAS d'autologin. fws_write_lightdm_config() { local session_name="$1" mkdir -p /etc/lightdm/lightdm.conf.d printf '[Seat:*]\nuser-session=%s\nallow-guest=false\n' \ "$session_name" \ > /etc/lightdm/lightdm.conf.d/50-fws.conf } # Paquets installés par défaut sur tous les bureaux fws_install_base_apps() { fws_install_packages firefox libreoffice-fresh mariadb mariadb-clients wine # MariaDB mariadb-install-db --user=mysql --basedir=/usr --datadir=/var/lib/mysql \ >/dev/null 2>&1 || true fws_enable_services mariadb.service # Dépendances WinBoat : KVM, Podman, Podman Compose fws_install_packages qemu-base podman podman-compose # Charge les modules KVM au démarrage printf 'kvm\nkvm_intel\nkvm_amd\n' > /etc/modules-load.d/kvm.conf # Active le socket Podman pour l'utilisateur root fws_enable_services podman.socket }