#!/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 } 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 } fws_write_lightdm_config() { local user_name="$1" local session_name="$2" if [ -z "$user_name" ]; then return 0 fi mkdir -p /etc/lightdm/lightdm.conf.d printf '[Seat:*]\nautologin-user=%s\nautologin-user-timeout=0\nuser-session=%s\nautologin-session=%s\ngreeter-hide-users=true\nallow-guest=false\n' "$user_name" "$session_name" "$session_name" > /etc/lightdm/lightdm.conf.d/50-fws.conf } fws_write_sddm_config() { local user_name="$1" local session_name="$2" if [ -z "$user_name" ]; then return 0 fi mkdir -p /etc/sddm.conf.d printf '[Autologin]\nUser=%s\nSession=%s.desktop\nRelogin=false\n' "$user_name" "$session_name" > /etc/sddm.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 mariadb-install-db --user=mysql --basedir=/usr --datadir=/var/lib/mysql \ >/dev/null 2>&1 || true fws_enable_services mariadb.service }