fix(Installer ─ Multi-Desktop): Fix Multi Desktop

This commit is contained in:
2026-05-28 18:00:25 +02:00
parent 40fd289a9f
commit 241bd5c219
29 changed files with 116 additions and 621 deletions
@@ -1,33 +0,0 @@
#!/bin/bash
# Sélection de l'environnement de bureau AVANT le démarrage de Calamares.
# Les services systemd n'héritent pas de $DISPLAY — on force :0 (session Xorg live).
export DISPLAY=":0"
DESKTOP="xfce" # valeur par défaut si zenity échoue
CHOICE=$(zenity \
--list \
--title="FWS — Environnement de bureau" \
--text="Quel environnement de bureau souhaitez-vous installer ?" \
--column="Environnement" \
--column="Description" \
--width=580 \
--height=340 \
"Xfce (Recommandé)" "Léger et rapide — idéal pour tous les systèmes" \
"KDE Plasma" "Moderne, riche en fonctionnalités et personnalisable" \
"GNOME" "Interface épurée centrée sur la productivité" \
"Hyprland" "Compositeur Wayland dynamique (utilisateurs avancés)" \
2>/dev/null) || true
case "${CHOICE:-}" in
"Xfce (Recommandé)") DESKTOP="xfce" ;;
"KDE Plasma") DESKTOP="kde" ;;
"GNOME") DESKTOP="gnome" ;;
"Hyprland") DESKTOP="hyprland" ;;
*) DESKTOP="xfce" ;;
esac
printf '%s' "$DESKTOP" > /run/fws-desktop
exec /usr/bin/calamares "$@"
@@ -1,17 +0,0 @@
#!/bin/bash
set -euo pipefail
. /usr/local/bin/fws-desktop-init-common
# Mode CLI : pas d'interface graphique.
# On installe uniquement les outils serveur + WinBoat + Wine.
fws_install_packages mariadb mariadb-clients wine \
qemu-base podman podman-compose git
mariadb-install-db --user=mysql --basedir=/usr --datadir=/var/lib/mysql \
>/dev/null 2>&1 || true
fws_enable_services mariadb.service podman.socket
printf 'kvm\nkvm_intel\nkvm_amd\n' > /etc/modules-load.d/kvm.conf
fws_disable_services lightdm.service sddm.service gdm.service
@@ -1,80 +0,0 @@
#!/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
}
@@ -1,13 +0,0 @@
#!/bin/bash
set -euo pipefail
. /usr/local/bin/fws-desktop-init-common
first_user="$(fws_first_user)"
fws_remove_xfce
fws_install_base_apps
fws_install_packages gnome gdm
fws_disable_services lightdm.service sddm.service
fws_enable_services gdm.service
fws_write_dmrc "$first_user" gnome
@@ -1,16 +0,0 @@
#!/bin/bash
set -euo pipefail
. /usr/local/bin/fws-desktop-init-common
first_user="$(fws_first_user)"
fws_remove_xfce
fws_install_base_apps
fws_install_packages hyprland xdg-desktop-portal-hyprland xdg-desktop-portal-gtk \
waybar wofi kitty swaybg swayidle swaylock xorg-xwayland wl-clipboard \
grim slurp qt5-wayland qt6-wayland sddm
fws_disable_services lightdm.service gdm.service
fws_enable_services sddm.service
fws_write_sddm_config hyprland
fws_write_dmrc "$first_user" hyprland
@@ -1,14 +0,0 @@
#!/bin/bash
set -euo pipefail
. /usr/local/bin/fws-desktop-init-common
first_user="$(fws_first_user)"
fws_remove_xfce
fws_install_base_apps
fws_install_packages plasma-meta konsole dolphin sddm
fws_disable_services lightdm.service gdm.service
fws_enable_services sddm.service
fws_write_sddm_config plasma
fws_write_dmrc "$first_user" plasma
@@ -1,14 +0,0 @@
#!/bin/bash
set -euo pipefail
. /usr/local/bin/fws-desktop-init-common
first_user="$(fws_first_user)"
# Xfce est déjà dans le squashfs — on s'assure juste qu'il est complet
fws_install_base_apps
fws_install_packages xfce4 xfce4-goodies lightdm lightdm-gtk-greeter
fws_disable_services sddm.service gdm.service
fws_enable_services lightdm.service
fws_write_lightdm_config xfce
fws_write_dmrc "$first_user" xfce