81 lines
2.3 KiB
Bash
81 lines
2.3 KiB
Bash
#!/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
|
|
}
|