diff --git a/configs/baseline/airootfs/etc/calamares/branding/fws/branding.desc b/configs/baseline/airootfs/etc/calamares/branding/fws/branding.desc deleted file mode 100644 index ce5397a..0000000 --- a/configs/baseline/airootfs/etc/calamares/branding/fws/branding.desc +++ /dev/null @@ -1,40 +0,0 @@ -# ============================================================ -# FWS Linux — branding.desc -# ============================================================ - -componentName: fws - -strings: - productName: "FWS" - shortProductName: "FWS" - version: "1.0" - shortVersion: "1.0" - versionedName: "FWS 1.0" - shortVersionedName: "FWS 1.0" - bootloaderEntryName: "FWS" - productUrl: "" - supportUrl: "" - releaseNotesUrl: "" - donateUrl: "" - -images: - productLogo: "logo.png" - productIcon: "logo.png" - productWelcome: "logo.png" - -slideshow: "slideshow.qml" -slideshowAPI: 2 - -style: - # Couleurs de la sidebar - sidebarBackground: "#1a1a2e" - sidebarText: "#e0e0e0" - sidebarTextHighlight: "#00d4ff" - sidebarSelect: "#16213e" - - # Couleurs générales - backgroundColor: "#0f3460" - highlightedTextColor: "#ffffff" - genericTextColor: "#e0e0e0" - errorTextColor: "#ff6b6b" - warningTextColor: "#ffa500" diff --git a/configs/baseline/airootfs/etc/calamares/branding/fws/logo.png b/configs/baseline/airootfs/etc/calamares/branding/fws/logo.png deleted file mode 100644 index dda0772..0000000 Binary files a/configs/baseline/airootfs/etc/calamares/branding/fws/logo.png and /dev/null differ diff --git a/configs/baseline/airootfs/etc/calamares/branding/fws/slideshow.qml b/configs/baseline/airootfs/etc/calamares/branding/fws/slideshow.qml deleted file mode 100644 index 0c6143b..0000000 --- a/configs/baseline/airootfs/etc/calamares/branding/fws/slideshow.qml +++ /dev/null @@ -1,138 +0,0 @@ -/* ============================================================ - FWS Linux — slideshow.qml - Affiché pendant l'installation - ============================================================ */ - -import QtQuick 2.0 -import calamares.slideshow 1.0 - -Presentation { - id: presentation - - function nextSlide() { - if (presentation.currentSlide < slides.count - 1) - presentation.currentSlide++ - else - presentation.currentSlide = 0 - } - - Timer { - id: timer - interval: 4000 - repeat: true - running: true - onTriggered: nextSlide() - } - - Slide { - anchors.fill: parent - - Rectangle { - anchors.fill: parent - color: "#1a1a2e" - - Column { - anchors.centerIn: parent - spacing: 20 - - Text { - text: "🚀 Bienvenue sur FWS Linux" - color: "#00d4ff" - font.pixelSize: 32 - font.bold: true - anchors.horizontalCenter: parent.horizontalCenter - } - Text { - text: "Un système rapide, léger et puissant." - color: "#e0e0e0" - font.pixelSize: 18 - anchors.horizontalCenter: parent.horizontalCenter - } - } - } - } - - Slide { - anchors.fill: parent - - Rectangle { - anchors.fill: parent - color: "#16213e" - - Column { - anchors.centerIn: parent - spacing: 20 - - Text { - text: "⚡ Basé sur Arch Linux" - color: "#00d4ff" - font.pixelSize: 32 - font.bold: true - anchors.horizontalCenter: parent.horizontalCenter - } - Text { - text: "Accès à l'AUR et aux derniers paquets." - color: "#e0e0e0" - font.pixelSize: 18 - anchors.horizontalCenter: parent.horizontalCenter - } - } - } - } - - Slide { - anchors.fill: parent - - Rectangle { - anchors.fill: parent - color: "#0f3460" - - Column { - anchors.centerIn: parent - spacing: 20 - - Text { - text: "🛡️ Sécurité & Stabilité" - color: "#00d4ff" - font.pixelSize: 32 - font.bold: true - anchors.horizontalCenter: parent.horizontalCenter - } - Text { - text: "FWS est conçu pour être robuste et fiable." - color: "#e0e0e0" - font.pixelSize: 18 - anchors.horizontalCenter: parent.horizontalCenter - } - } - } - } - - Slide { - anchors.fill: parent - - Rectangle { - anchors.fill: parent - color: "#1a1a2e" - - Column { - anchors.centerIn: parent - spacing: 20 - - Text { - text: "✅ Installation en cours..." - color: "#00d4ff" - font.pixelSize: 32 - font.bold: true - anchors.horizontalCenter: parent.horizontalCenter - } - Text { - text: "Merci de patienter, FWS s'installe sur votre machine." - color: "#e0e0e0" - font.pixelSize: 18 - anchors.horizontalCenter: parent.horizontalCenter - } - } - } - } -} diff --git a/configs/baseline/airootfs/etc/calamares/modules/bootloader.conf b/configs/baseline/airootfs/etc/calamares/modules/bootloader.conf deleted file mode 100644 index 1114344..0000000 --- a/configs/baseline/airootfs/etc/calamares/modules/bootloader.conf +++ /dev/null @@ -1,12 +0,0 @@ ---- -efiBootLoader: "grub" - -grubInstall: "grub-install" -grubMkconfig: "grub-mkconfig" -grubCfg: "/boot/grub/grub.cfg" -grubProbe: "grub-probe" -efiBootMgr: "efibootmgr" - -efiBootloaderId: "FWS" -installEFIFallback: true -installHybridGRUB: false diff --git a/configs/baseline/airootfs/etc/calamares/modules/finished.conf b/configs/baseline/airootfs/etc/calamares/modules/finished.conf deleted file mode 100644 index f34e952..0000000 --- a/configs/baseline/airootfs/etc/calamares/modules/finished.conf +++ /dev/null @@ -1,6 +0,0 @@ ---- -restartNowEnabled: true -restartNowChecked: false -restartNowCommand: "systemctl -i reboot" - -notifyOnFinished: true diff --git a/configs/baseline/airootfs/etc/calamares/modules/fstab.conf b/configs/baseline/airootfs/etc/calamares/modules/fstab.conf deleted file mode 100644 index d98f3eb..0000000 --- a/configs/baseline/airootfs/etc/calamares/modules/fstab.conf +++ /dev/null @@ -1,10 +0,0 @@ ---- -crypttabOptions: luks,keyscript=/bin/cat - -tmpOptions: - default: - tmpfs: false - options: "" - ssd: - tmpfs: true - options: "defaults,noatime,mode=1777" diff --git a/configs/baseline/airootfs/etc/calamares/modules/grubcfg.conf b/configs/baseline/airootfs/etc/calamares/modules/grubcfg.conf deleted file mode 100644 index daa44ff..0000000 --- a/configs/baseline/airootfs/etc/calamares/modules/grubcfg.conf +++ /dev/null @@ -1,13 +0,0 @@ ---- -overwrite: true - -kernel_params: - - "quiet" - -defaults: - GRUB_TIMEOUT: 5 - GRUB_DEFAULT: "saved" - GRUB_DISABLE_SUBMENU: true - GRUB_TERMINAL_OUTPUT: "console" - GRUB_DISABLE_RECOVERY: true - GRUB_DISTRIBUTOR: "FWS" diff --git a/configs/baseline/airootfs/etc/calamares/modules/hostname.conf b/configs/baseline/airootfs/etc/calamares/modules/hostname.conf deleted file mode 100644 index bd0e6c8..0000000 --- a/configs/baseline/airootfs/etc/calamares/modules/hostname.conf +++ /dev/null @@ -1,6 +0,0 @@ ---- -location: EtcFile -writeHostsFile: true -setSystemdHostname: EtcFile - -template: "fws-${first}" diff --git a/configs/baseline/airootfs/etc/calamares/modules/hwclock.conf b/configs/baseline/airootfs/etc/calamares/modules/hwclock.conf deleted file mode 100644 index ed97d53..0000000 --- a/configs/baseline/airootfs/etc/calamares/modules/hwclock.conf +++ /dev/null @@ -1 +0,0 @@ ---- diff --git a/configs/baseline/airootfs/etc/calamares/modules/initcpiocfg.conf b/configs/baseline/airootfs/etc/calamares/modules/initcpiocfg.conf deleted file mode 100644 index 61c7191..0000000 --- a/configs/baseline/airootfs/etc/calamares/modules/initcpiocfg.conf +++ /dev/null @@ -1,10 +0,0 @@ ---- -# Calamares 3.3+ : initcpiocfg modifie le mkinitcpio.conf existant -# au lieu de le réécrire entièrement. - -useSystemdHook: false - -hooks: - prepend: [] - append: [] - remove: [] diff --git a/configs/baseline/airootfs/etc/calamares/modules/keyboard.conf b/configs/baseline/airootfs/etc/calamares/modules/keyboard.conf deleted file mode 100644 index 383d022..0000000 --- a/configs/baseline/airootfs/etc/calamares/modules/keyboard.conf +++ /dev/null @@ -1,6 +0,0 @@ ---- -xOrgConfFileName: "00-keyboard.conf" -convertedKeymapPath: "/usr/share/X11/xkb/symbols/pc" -keyboardLayout: "fr" -keyboardVariant: "" -keyboardModel: "pc105" diff --git a/configs/baseline/airootfs/etc/calamares/modules/locale.conf b/configs/baseline/airootfs/etc/calamares/modules/locale.conf deleted file mode 100644 index 2a0fa54..0000000 --- a/configs/baseline/airootfs/etc/calamares/modules/locale.conf +++ /dev/null @@ -1,6 +0,0 @@ ---- -region: "Europe" -zone: "Paris" -localeGenPath: "/etc/locale.gen" -geoipStyle: "json" -geoipUrl: "https://geoip.kde.org/v1/calamares" diff --git a/configs/baseline/airootfs/etc/calamares/modules/localecfg.conf b/configs/baseline/airootfs/etc/calamares/modules/localecfg.conf deleted file mode 100644 index ed97d53..0000000 --- a/configs/baseline/airootfs/etc/calamares/modules/localecfg.conf +++ /dev/null @@ -1 +0,0 @@ ---- diff --git a/configs/baseline/airootfs/etc/calamares/modules/machineid.conf b/configs/baseline/airootfs/etc/calamares/modules/machineid.conf deleted file mode 100644 index 8e76ee2..0000000 --- a/configs/baseline/airootfs/etc/calamares/modules/machineid.conf +++ /dev/null @@ -1,4 +0,0 @@ ---- -systemd: true -dbus: true -dbus-symlink: true diff --git a/configs/baseline/airootfs/etc/calamares/modules/mount.conf b/configs/baseline/airootfs/etc/calamares/modules/mount.conf deleted file mode 100644 index 7fd6cdc..0000000 --- a/configs/baseline/airootfs/etc/calamares/modules/mount.conf +++ /dev/null @@ -1,45 +0,0 @@ ---- -extraMounts: - - device: proc - fs: proc - mountPoint: /proc - - device: sys - fs: sysfs - mountPoint: /sys - - device: /dev - mountPoint: /dev - options: [ bind ] - - device: /dev/pts - fs: devpts - mountPoint: /dev/pts - - device: tmpfs - fs: tmpfs - mountPoint: /run - - device: /run/udev - mountPoint: /run/udev - options: [ bind ] - - device: efivarfs - fs: efivarfs - mountPoint: /sys/firmware/efi/efivars - efi: true - -mountOptions: - - filesystem: default - options: [ defaults, noatime ] - - filesystem: efi - options: [ defaults, umask=0077 ] - - filesystem: ext4 - ssdOptions: [ discard ] - - filesystem: xfs - ssdOptions: [ discard ] - - filesystem: btrfs - options: [ defaults, noatime, "compress=zstd:1", "space_cache=v2" ] - ssdOptions: [ discard=async ] - hddOptions: [ autodefrag ] - - filesystem: btrfs_swap - options: [ defaults, noatime ] - - filesystem: f2fs - options: [ defaults, noatime ] - ssdOptions: [ discard ] - - filesystem: swap - ssdOptions: [ discard ] diff --git a/configs/baseline/airootfs/etc/calamares/modules/networkcfg.conf b/configs/baseline/airootfs/etc/calamares/modules/networkcfg.conf deleted file mode 100644 index 156a3b9..0000000 --- a/configs/baseline/airootfs/etc/calamares/modules/networkcfg.conf +++ /dev/null @@ -1,2 +0,0 @@ ---- -# Copie /etc/NetworkManager du live vers le système cible (NM gérera le réseau). diff --git a/configs/baseline/airootfs/etc/calamares/modules/packagechooser.conf b/configs/baseline/airootfs/etc/calamares/modules/packagechooser.conf deleted file mode 100644 index a6cf766..0000000 --- a/configs/baseline/airootfs/etc/calamares/modules/packagechooser.conf +++ /dev/null @@ -1,26 +0,0 @@ ---- -mode: required - -labels: - step: "Environnement de bureau" - -items: - - id: xfce - name: "Xfce" - description: "Environnement léger, stable et rapide. Idéal pour les machines modestes." - screenshot: "" - - - id: kde - name: "KDE Plasma" - description: "Environnement moderne et très personnalisable avec de nombreuses fonctionnalités." - screenshot: "" - - - id: gnome - name: "GNOME" - description: "Environnement épuré et intuitif avec une interface tactile-friendly." - screenshot: "" - - - id: hyprland - name: "Hyprland" - description: "Compositeur Wayland dynamique, animé et hautement personnalisable." - screenshot: "" diff --git a/configs/baseline/airootfs/etc/calamares/modules/packages.conf b/configs/baseline/airootfs/etc/calamares/modules/packages.conf deleted file mode 100644 index 8aefcd2..0000000 --- a/configs/baseline/airootfs/etc/calamares/modules/packages.conf +++ /dev/null @@ -1,14 +0,0 @@ ---- -# Étape post-unpackfs : retire les paquets live-only. -# Tous les paquets utiles sont déjà dans le squashfs. -# Pas besoin d'installer quoi que ce soit depuis internet. - -backend: pacman -update_db: false -update_system: false - -operations: - - remove: - - calamares - - kpmcore - - mkinitcpio-archiso diff --git a/configs/baseline/airootfs/etc/calamares/modules/partition.conf b/configs/baseline/airootfs/etc/calamares/modules/partition.conf deleted file mode 100644 index 4bfe10e..0000000 --- a/configs/baseline/airootfs/etc/calamares/modules/partition.conf +++ /dev/null @@ -1,22 +0,0 @@ ---- -efiSystemPartition: "/boot/efi" -efiSystemPartitionSize: 300M -efiSystemPartitionName: EFI - -userSwapChoices: - - none - - small - - suspend - - file - -drawNestedPartitions: true -alwaysShowPartitionLabels: true - -initialPartitioningChoice: replace -initialSwapChoice: small - -defaultFileSystemType: "ext4" -availableFileSystemTypes: ["ext4", "btrfs", "xfs", "f2fs"] - -enableLuksAutomatedPartitioning: true -allowManualPartitioning: true diff --git a/configs/baseline/airootfs/etc/calamares/modules/services-systemd.conf b/configs/baseline/airootfs/etc/calamares/modules/services-systemd.conf deleted file mode 100644 index 491c59c..0000000 --- a/configs/baseline/airootfs/etc/calamares/modules/services-systemd.conf +++ /dev/null @@ -1,17 +0,0 @@ ---- -units: - - name: "NetworkManager.service" - action: "enable" - mandatory: true - - - name: "systemd-resolved.service" - action: "enable" - mandatory: false - - - name: "systemd-timesyncd.service" - action: "enable" - mandatory: false - - - 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 deleted file mode 100644 index 9931c31..0000000 --- a/configs/baseline/airootfs/etc/calamares/modules/shellprocess.conf +++ /dev/null @@ -1,47 +0,0 @@ ---- -# Exécuté HORS chroot (live system) pour accéder à l'ISO montée. -# But : restaurer le kernel (retiré du squashfs par mkarchiso) et -# corriger les fichiers mkinitcpio archiso-spécifiques. - -dontChroot: true - -# Timeout par défaut (secondes) appliqué à chaque commande. -# La valeur par défaut de Calamares est 30 s — beaucoup trop courte -# pour l'installation d'un bureau complet (pacman télécharge des -# centaines de Mo). On relève le défaut et on accorde un délai -# spécifique très large à la commande d'init du bureau. -timeout: 300 - -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"' - # Installation du bureau choisi : peut être long (réseau + gros DE - # comme KDE/GNOME) → 1 h de marge pour ne jamais expirer à tort. - # - # arch-chroot (et non « chroot » brut) : monte /proc /sys /dev /run et - # copie resolv.conf dans la cible. Indispensable, sinon les hooks - # post-transaction de pacman (systemd daemon-reload, udev, tmpfiles…) - # échouent faute de ces points de montage → pacman sort en code 1 - # alors même que les téléchargements ont réussi. - # Le nom du bureau est validé contre une allow-list (mêmes valeurs que - # les scripts fws-desktop-init-* présents) : toute valeur vide / inconnue - # / avec espace parasite retombe sur xfce → jamais d'abandon d'install sur - # un script d'init manquant. - - command: 'd="$(cat /run/fws-desktop 2>/dev/null)"; d="${d%%[[:space:]]*}"; case "$d" in xfce|kde|gnome|hyprland) ;; *) d=xfce ;; esac; arch-chroot "${ROOT}" /bin/bash "/usr/local/bin/fws-desktop-init-$d"' - timeout: 3600 - - # ── Nettoyage des artefacts « live-only » qui ne doivent PAS persister - # sur le système installé (le squashfs du live devient le root cible) ── - # 1) Autologin root SANS mot de passe sur tty1 (drop-in getty du live) : - # trou de sécurité + conflit avec le display manager sur vt1. - - 'rm -rf "${ROOT}/etc/systemd/system/getty@tty1.service.d"' - # 2) Provisionnement auto archiso (param noyau script=) : ne doit jamais - # tourner sur la machine installée. - - 'rm -f "${ROOT}/root/.zlogin" "${ROOT}/root/.automated_script.sh"' - - # Supprime le drop-in archiso (surcharge HOOKS avec des hooks inexistants post-install) - - 'rm -f "${ROOT}/etc/mkinitcpio.conf.d/archiso.conf"' - - # Remplace le linux.preset archiso par le preset standard (default + fallback) - # \x27 = ' et \x22 = " pour éviter les conflits de quotes dans YAML/bash - - 'printf "PRESETS=(\x27default\x27 \x27fallback\x27)\nALL_kver=\x22/boot/vmlinuz-linux\x22\nALL_config=\x22/etc/mkinitcpio.conf\x22\nALL_microcode=(/boot/*-ucode.img)\ndefault_image=\x22/boot/initramfs-linux.img\x22\nfallback_image=\x22/boot/initramfs-linux-fallback.img\x22\nfallback_options=\x22-S autodetect\x22\n" > "${ROOT}/etc/mkinitcpio.d/linux.preset"' diff --git a/configs/baseline/airootfs/etc/calamares/modules/unpackfs.conf b/configs/baseline/airootfs/etc/calamares/modules/unpackfs.conf deleted file mode 100644 index 91c348a..0000000 --- a/configs/baseline/airootfs/etc/calamares/modules/unpackfs.conf +++ /dev/null @@ -1,9 +0,0 @@ ---- -# Copie le squashfs du live vers le disque cible. -# Le chemin /run/archiso/bootmnt///airootfs.sfs -# doit correspondre à `install_dir` dans configs/releng/profiledef.sh ("fws"). - -unpack: - - source: "/run/archiso/bootmnt/fws/x86_64/airootfs.sfs" - sourcefs: "squashfs" - destination: "" diff --git a/configs/baseline/airootfs/etc/calamares/modules/users.conf b/configs/baseline/airootfs/etc/calamares/modules/users.conf deleted file mode 100644 index c40dd72..0000000 --- a/configs/baseline/airootfs/etc/calamares/modules/users.conf +++ /dev/null @@ -1,29 +0,0 @@ ---- -defaultGroups: - - wheel - - audio - - video - - network - - storage - - power - - lp - - scanner - -autologinGroup: autologin -sudoersGroup: wheel -setRootPassword: true -doAutologin: true -userShell: /bin/bash - -passwordRequirements: - minLength: 6 - maxLength: -1 - nonempty: true - -allowWeakPasswords: false -allowWeakPasswordsDefault: false - -hostname: - location: EtcFile - writeHostsFile: true - setSystemdHostname: true diff --git a/configs/baseline/airootfs/etc/calamares/modules/welcome.conf b/configs/baseline/airootfs/etc/calamares/modules/welcome.conf deleted file mode 100644 index c932491..0000000 --- a/configs/baseline/airootfs/etc/calamares/modules/welcome.conf +++ /dev/null @@ -1,20 +0,0 @@ ---- -showSupportUrl: true -showKnownIssuesUrl: true -showReleaseNotesUrl: false -showDonateUrl: false - -requirements: - requiredStorage: 8.0 - requiredRam: 1.5 - internetCheckUrl: "https://archlinux.org" - check: - - storage - - ram - - power - - root - - screen - required: - - storage - - ram - - root diff --git a/configs/baseline/airootfs/etc/calamares/settings.conf b/configs/baseline/airootfs/etc/calamares/settings.conf deleted file mode 100644 index c40189b..0000000 --- a/configs/baseline/airootfs/etc/calamares/settings.conf +++ /dev/null @@ -1,50 +0,0 @@ ---- -# ============================================================ -# FWS — Calamares settings -# ============================================================ - -modules-search: [ local, /usr/lib/calamares/modules ] - -sequence: - # NB : pas de module `packagechooser` ici — il n'est pas compilé dans le - # paquet calamares (AUR). Le choix du bureau se fait dans le live via - # /usr/local/bin/fws-pick-desktop (écrit /run/fws-desktop), validé ensuite - # par le job `fws-desktop-choice` ci-dessous. - - show: - - welcome - - locale - - keyboard - - partition - - users - - summary - - exec: - - partition - - mount - - unpackfs - - machineid - - fstab - - locale - - keyboard - - localecfg - - users - - hwclock - - networkcfg - - packages - - fws-desktop-choice - - shellprocess - - initcpiocfg - - initcpio - - grubcfg - - bootloader - - services-systemd - - umount - - show: - - finished - -branding: fws - -prompt-install: true -dont-chroot: false -oem-setup: false -disable-cancel: false -disable-cancel-during-exec: false diff --git a/configs/baseline/airootfs/usr/lib/calamares/modules/fws-desktop-choice/main.py b/configs/baseline/airootfs/usr/lib/calamares/modules/fws-desktop-choice/main.py deleted file mode 100755 index b914655..0000000 --- a/configs/baseline/airootfs/usr/lib/calamares/modules/fws-desktop-choice/main.py +++ /dev/null @@ -1,38 +0,0 @@ -#!/usr/bin/env python3 -import libcalamares - -# Chaque valeur doit avoir un /usr/local/bin/fws-desktop-init- -# correspondant (invariant 1:1). Toute valeur hors-set retombe sur FALLBACK. -VALID = {"xfce", "kde", "gnome", "hyprland"} -FALLBACK = "xfce" - - -def pretty_name(): - return "Sélection de l'environnement de bureau" - - -STATE = "/run/fws-desktop" - - -def run(): - # Le choix est fait dans le live par /usr/local/bin/fws-pick-desktop, qui - # écrit STATE (le module packagechooser n'est pas compilé dans le paquet - # calamares AUR, donc pas de sélection côté Calamares). Ici on valide et on - # normalise pour garantir une valeur sûre à shellprocess (repli xfce). - choice = FALLBACK - try: - with open(STATE) as fh: - raw = fh.read().strip() - if raw in VALID: - choice = raw - except OSError: - pass - - try: - with open(STATE, "w") as fh: - fh.write(choice) - except OSError as e: - libcalamares.utils.warning(f"fws-desktop-choice: impossible d'écrire {STATE}: {e}") - - libcalamares.utils.debug(f"fws-desktop-choice: bureau = {choice}") - return None diff --git a/configs/baseline/airootfs/usr/lib/calamares/modules/fws-desktop-choice/module.desc b/configs/baseline/airootfs/usr/lib/calamares/modules/fws-desktop-choice/module.desc deleted file mode 100644 index b01a8f9..0000000 --- a/configs/baseline/airootfs/usr/lib/calamares/modules/fws-desktop-choice/module.desc +++ /dev/null @@ -1,5 +0,0 @@ ---- -type: "job" -name: "fws-desktop-choice" -interface: "python" -script: "main.py" diff --git a/configs/releng/airootfs/etc/calamares/branding/fws/branding.desc b/configs/releng/airootfs/etc/calamares/branding/fws/branding.desc deleted file mode 100644 index 9b85604..0000000 --- a/configs/releng/airootfs/etc/calamares/branding/fws/branding.desc +++ /dev/null @@ -1,40 +0,0 @@ -# ============================================================ -# FWS Linux — branding.desc -# ============================================================ - -componentName: fws - -strings: - productName: "FWS Linux" - shortProductName: "FWS" - version: "1.0" - shortVersion: "1.0" - versionedName: "FWS Linux 1.0" - shortVersionedName: "FWS 1.0" - bootloaderEntryName: "FWS Linux" - productUrl: "https://fws-linux.org" - supportUrl: "https://fws-linux.org/support" - releaseNotesUrl: "https://fws-linux.org/release-notes" - donateUrl: "https://fws-linux.org/donate" - -images: - productLogo: "logo.png" - productIcon: "logo.png" - productWelcome: "logo.png" - -slideshow: "slideshow.qml" -slideshowAPI: 2 - -style: - # Couleurs de la sidebar - sidebarBackground: "#1a1a2e" - sidebarText: "#e0e0e0" - sidebarTextHighlight: "#00d4ff" - sidebarSelect: "#16213e" - - # Couleurs générales - backgroundColor: "#0f3460" - highlightedTextColor: "#ffffff" - genericTextColor: "#e0e0e0" - errorTextColor: "#ff6b6b" - warningTextColor: "#ffa500" diff --git a/configs/releng/airootfs/etc/calamares/branding/fws/logo.png b/configs/releng/airootfs/etc/calamares/branding/fws/logo.png deleted file mode 100644 index dda0772..0000000 Binary files a/configs/releng/airootfs/etc/calamares/branding/fws/logo.png and /dev/null differ diff --git a/configs/releng/airootfs/etc/calamares/branding/fws/slideshow.qml b/configs/releng/airootfs/etc/calamares/branding/fws/slideshow.qml deleted file mode 100644 index 0c6143b..0000000 --- a/configs/releng/airootfs/etc/calamares/branding/fws/slideshow.qml +++ /dev/null @@ -1,138 +0,0 @@ -/* ============================================================ - FWS Linux — slideshow.qml - Affiché pendant l'installation - ============================================================ */ - -import QtQuick 2.0 -import calamares.slideshow 1.0 - -Presentation { - id: presentation - - function nextSlide() { - if (presentation.currentSlide < slides.count - 1) - presentation.currentSlide++ - else - presentation.currentSlide = 0 - } - - Timer { - id: timer - interval: 4000 - repeat: true - running: true - onTriggered: nextSlide() - } - - Slide { - anchors.fill: parent - - Rectangle { - anchors.fill: parent - color: "#1a1a2e" - - Column { - anchors.centerIn: parent - spacing: 20 - - Text { - text: "🚀 Bienvenue sur FWS Linux" - color: "#00d4ff" - font.pixelSize: 32 - font.bold: true - anchors.horizontalCenter: parent.horizontalCenter - } - Text { - text: "Un système rapide, léger et puissant." - color: "#e0e0e0" - font.pixelSize: 18 - anchors.horizontalCenter: parent.horizontalCenter - } - } - } - } - - Slide { - anchors.fill: parent - - Rectangle { - anchors.fill: parent - color: "#16213e" - - Column { - anchors.centerIn: parent - spacing: 20 - - Text { - text: "⚡ Basé sur Arch Linux" - color: "#00d4ff" - font.pixelSize: 32 - font.bold: true - anchors.horizontalCenter: parent.horizontalCenter - } - Text { - text: "Accès à l'AUR et aux derniers paquets." - color: "#e0e0e0" - font.pixelSize: 18 - anchors.horizontalCenter: parent.horizontalCenter - } - } - } - } - - Slide { - anchors.fill: parent - - Rectangle { - anchors.fill: parent - color: "#0f3460" - - Column { - anchors.centerIn: parent - spacing: 20 - - Text { - text: "🛡️ Sécurité & Stabilité" - color: "#00d4ff" - font.pixelSize: 32 - font.bold: true - anchors.horizontalCenter: parent.horizontalCenter - } - Text { - text: "FWS est conçu pour être robuste et fiable." - color: "#e0e0e0" - font.pixelSize: 18 - anchors.horizontalCenter: parent.horizontalCenter - } - } - } - } - - Slide { - anchors.fill: parent - - Rectangle { - anchors.fill: parent - color: "#1a1a2e" - - Column { - anchors.centerIn: parent - spacing: 20 - - Text { - text: "✅ Installation en cours..." - color: "#00d4ff" - font.pixelSize: 32 - font.bold: true - anchors.horizontalCenter: parent.horizontalCenter - } - Text { - text: "Merci de patienter, FWS s'installe sur votre machine." - color: "#e0e0e0" - font.pixelSize: 18 - anchors.horizontalCenter: parent.horizontalCenter - } - } - } - } -} diff --git a/configs/releng/airootfs/etc/calamares/modules/bootloader.conf b/configs/releng/airootfs/etc/calamares/modules/bootloader.conf deleted file mode 100644 index b865d38..0000000 --- a/configs/releng/airootfs/etc/calamares/modules/bootloader.conf +++ /dev/null @@ -1,22 +0,0 @@ -# ============================================================ -# FWS Linux — modules/bootloader.conf -# ============================================================ - -# Bootloader à utiliser -# Options: grub, systemd-boot, refind -efiBootLoader: "grub" - -# Paramètres GRUB -grubInstall: "grub-install" -grubMkconfig: "grub-mkconfig" -grubCfg: "/boot/grub/grub.cfg" - -# Chemin EFI -efiDirectory: "/boot/efi" - -# ID pour l'entrée EFI -efiBootEntryName: "FWS Linux" - -# Menu GRUB -grubTimeout: 5 -grubQuiet: false diff --git a/configs/releng/airootfs/etc/calamares/modules/finished.conf b/configs/releng/airootfs/etc/calamares/modules/finished.conf deleted file mode 100644 index 1f12bf5..0000000 --- a/configs/releng/airootfs/etc/calamares/modules/finished.conf +++ /dev/null @@ -1,11 +0,0 @@ -# ============================================================ -# FWS Linux — modules/finished.conf -# ============================================================ - -# Redémarrer automatiquement après l'installation -restartNowEnabled: true -restartNowChecked: false -restartNowCommand: "systemctl reboot" - -# Message de fin affiché à l'utilisateur -notifyOnFinished: true diff --git a/configs/releng/airootfs/etc/calamares/modules/grubcfg.conf b/configs/releng/airootfs/etc/calamares/modules/grubcfg.conf deleted file mode 100644 index c56e240..0000000 --- a/configs/releng/airootfs/etc/calamares/modules/grubcfg.conf +++ /dev/null @@ -1,28 +0,0 @@ -# ============================================================ -# FWS Linux — modules/grubcfg.conf -# Paramètres passés à grub-mkconfig -# ============================================================ - -# Nom de l'entrée dans le menu GRUB -defaultEntry: "FWS Linux" - -defaults: - GRUB_ENABLE_CRYPTODISK: true - -# Paramètres kernel supplémentaires -kernel_params: "" - -# Désactiver l'écran splash (mettre false pour debug) -splash: true - -# Thème GRUB (laisse vide pour le thème par défaut) -theme: "" - -# Timeout du menu GRUB (en secondes) -timeout: 5 - -# Activer les entrées des autres OS détectés (os-prober) -enable_osprober: true - -# Écrire /etc/default/grub -writeEtcDefaultGrub: true diff --git a/configs/releng/airootfs/etc/calamares/modules/initcpiocfg.conf b/configs/releng/airootfs/etc/calamares/modules/initcpiocfg.conf deleted file mode 100644 index 61c7191..0000000 --- a/configs/releng/airootfs/etc/calamares/modules/initcpiocfg.conf +++ /dev/null @@ -1,10 +0,0 @@ ---- -# Calamares 3.3+ : initcpiocfg modifie le mkinitcpio.conf existant -# au lieu de le réécrire entièrement. - -useSystemdHook: false - -hooks: - prepend: [] - append: [] - remove: [] diff --git a/configs/releng/airootfs/etc/calamares/modules/keyboard.conf b/configs/releng/airootfs/etc/calamares/modules/keyboard.conf deleted file mode 100644 index 3621379..0000000 --- a/configs/releng/airootfs/etc/calamares/modules/keyboard.conf +++ /dev/null @@ -1,17 +0,0 @@ -# ============================================================ -# FWS Linux — modules/keyboard.conf -# ============================================================ - -# Disposition clavier par défaut -xorgConfigFileName: "/etc/X11/xorg.conf.d/00-keyboard.conf" - -# Clavier par défaut -keyboardLayout: "fr" -keyboardVariant: "" -keyboardModel: "pc105" - -# Permettre à l'utilisateur de choisir son clavier -guiTimezone: true - -# Conversions vc (console virtuelle) → X11 -convertedKeymapPath: "/lib/kbd/keymaps/xkb" diff --git a/configs/releng/airootfs/etc/calamares/modules/locale.conf b/configs/releng/airootfs/etc/calamares/modules/locale.conf deleted file mode 100644 index e0ff5a6..0000000 --- a/configs/releng/airootfs/etc/calamares/modules/locale.conf +++ /dev/null @@ -1,18 +0,0 @@ -# ============================================================ -# FWS Linux — modules/locale.conf -# ============================================================ - -# Région/timezone par défaut -region: "Europe" -zone: "Paris" - -# Langue par défaut -locale: "fr_FR.UTF-8" - -# Format des nombres, dates, monnaie -# Laisse vide pour utiliser la même valeur que locale -localeGenPath: "/etc/locale.gen" - -# Timezone GeoIP (détection auto basée sur l'IP) -geoipStyle: "json" -geoipUrl: "https://geoip.kde.org/v1/calamares" diff --git a/configs/releng/airootfs/etc/calamares/modules/packages.conf b/configs/releng/airootfs/etc/calamares/modules/packages.conf deleted file mode 100644 index 1162925..0000000 --- a/configs/releng/airootfs/etc/calamares/modules/packages.conf +++ /dev/null @@ -1,54 +0,0 @@ -# ============================================================ -# FWS Linux — modules/packages.conf -# Paquets installés via pacman pendant l'installation -# ============================================================ - -# Gestionnaire de paquets -backend: pacman - -# Ne pas mettre à jour la base de données pacman (déjà dans le live) -update_db: false - -operations: - - install: - # Base système - - base - - base-devel - - linux - - linux-headers - - linux-firmware - - # Bootloader - - grub - - efibootmgr - - os-prober - - mkinitcpio-openswap - - # Réseau - - networkmanager - - network-manager-applet - - wpa_supplicant - - dhcpcd - - # Outils essentiels - - sudo - - nano - - vim - - git - - curl - - wget - - htop - - bash-completion - - # Locale & timezone - - tzdata - - # Optionnel — retire ce qui ne correspond pas à FWS - - pipewire - - pipewire-pulse - - wireplumber - -# Paquets à retirer du système live (pas nécessaires après install) - - remove: - - calamares - - calamares-config diff --git a/configs/releng/airootfs/etc/calamares/modules/partition.conf b/configs/releng/airootfs/etc/calamares/modules/partition.conf deleted file mode 100644 index 4ca65dc..0000000 --- a/configs/releng/airootfs/etc/calamares/modules/partition.conf +++ /dev/null @@ -1,34 +0,0 @@ -# ============================================================ -# FWS Linux — modules/partition.conf -# ============================================================ - -# Backend de partitionnement -backend: kpmcore - -# Autoriser le partitionnement manuel -allowManualPartitioning: true - -# Schéma de partition par défaut (pour install automatique) -# Options: mbr, gpt -defaultPartitionTableType: gpt - -# Swap -# Options: none, small, suspend, file -defaultSwapType: small - -# Taille minimale des partitions en MiB -defaultFileSystemType: "ext4" - -# Partitions EFI (pour UEFI) -efiSystemPartition: "/boot/efi" -efiSystemPartitionSize: 300 - -# Point de montage racine -requiredStorage: 20.0 - -# Systèmes de fichiers proposés à l'utilisateur -availableFileSystemTypes: ["ext4", "btrfs", "xfs", "f2fs"] - -# Chiffrement -# Activer le chiffrement LUKS -allowZfs: true diff --git a/configs/releng/airootfs/etc/calamares/modules/services-systemd.conf b/configs/releng/airootfs/etc/calamares/modules/services-systemd.conf deleted file mode 100644 index e1e8c29..0000000 --- a/configs/releng/airootfs/etc/calamares/modules/services-systemd.conf +++ /dev/null @@ -1,27 +0,0 @@ -# ============================================================ -# FWS Linux — modules/services-systemd.conf -# Services systemd activés sur le système installé -# ============================================================ - -services: - # Réseau - - name: NetworkManager - mandatory: true - - # DHCP - - name: dhcpcd - mandatory: false - - # Heure synchronisée - - 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 - -targets: [] diff --git a/configs/releng/airootfs/etc/calamares/modules/unpackfs.conf b/configs/releng/airootfs/etc/calamares/modules/unpackfs.conf deleted file mode 100644 index e9b0db4..0000000 --- a/configs/releng/airootfs/etc/calamares/modules/unpackfs.conf +++ /dev/null @@ -1,16 +0,0 @@ -# ============================================================ -# FWS Linux — modules/unpackfs.conf -# Copie le système live vers le disque cible -# ============================================================ - -unpack: - # Source : le squashfs de l'ISO FWS - # Adapte "FWS" selon la valeur de iso_name dans profiledef.sh - - source: /run/archiso/bootmnt/FWS/x86_64/airootfs.sfs - sourcefs: squashfs - destination: "" - - # Alternative si tu utilises erofs au lieu de squashfs : - # - source: /run/archiso/bootmnt/FWS/x86_64/airootfs.erofs - # sourcefs: erofs - # destination: "" diff --git a/configs/releng/airootfs/etc/calamares/modules/users.conf b/configs/releng/airootfs/etc/calamares/modules/users.conf deleted file mode 100644 index 6966d4d..0000000 --- a/configs/releng/airootfs/etc/calamares/modules/users.conf +++ /dev/null @@ -1,40 +0,0 @@ -# ============================================================ -# FWS Linux — modules/users.conf -# ============================================================ - -# Nom d'hôte par défaut -defaultGroups: - - users - - lp - - video - - network - - storage - - wheel - - audio - - optical - - scanner - - power - -# Autoriser le login automatique -autologinGroup: autologin -doAutologin: true - -# Sudoers — donne les droits sudo au groupe wheel -sudoersGroup: wheel - -# Shell par défaut pour les nouveaux utilisateurs -userShell: /bin/bash - -# Hostname par défaut -hostname: - location: EtcFile - template: "fws-${first}" - -# Règles pour les mots de passe -passwordRequirements: - minLength: 6 - maxLength: -1 - nonempty: true - -# Permet de définir le même mot de passe pour root et user -allowWeakPasswords: false diff --git a/configs/releng/airootfs/etc/calamares/modules/welcome.conf b/configs/releng/airootfs/etc/calamares/modules/welcome.conf deleted file mode 100644 index 1bd0dd5..0000000 --- a/configs/releng/airootfs/etc/calamares/modules/welcome.conf +++ /dev/null @@ -1,29 +0,0 @@ -# ============================================================ -# FWS Linux — modules/welcome.conf -# ============================================================ - -# Afficher les conditions requises avant l'installation -showSupportUrl: true -showKnownIssuesUrl: true -showReleaseNotesUrl: false -showDonateUrl: false - -# Vérifications système requises -requirements: - # Espace disque minimum en MiB - requiredStorage: 20.0 - - # RAM minimum en MiB - requiredRam: 2.0 - - # Vérifier la connexion internet (optionnel) - checkInternet: false - - # Vérifier si on tourne en live (pas déjà installé) - checkForRoot: true - - # Vérifier l'alimentation (AC power) - checkPower: true - - # Ne bloque pas l'install si pas connecté - internetCheckUrl: "https://cloudflare.com" diff --git a/configs/releng/airootfs/etc/calamares/settings.conf b/configs/releng/airootfs/etc/calamares/settings.conf deleted file mode 100644 index d542571..0000000 --- a/configs/releng/airootfs/etc/calamares/settings.conf +++ /dev/null @@ -1,51 +0,0 @@ -# ============================================================ -# FWS Linux — Calamares settings.conf -# ============================================================ - -modules-search: [ local, /usr/lib/calamares/modules ] - -sequence: - - show: - - welcome - - locale - - keyboard - - partition - - users - - summary - - - exec: - - partition - - mount - - luksbootkeyfile - - luksopenswaphookcfg - - unpackfs - - machineid - - fstab - - locale - - keyboard - - localecfg - - users - - networkcfg - - hwclock - - services-systemd - - packages - - initcpiocfg - - initcpio - - grubcfg - - bootloader - - umount - - - show: - - finished - -branding: fws - -# Demande confirmation avant d'installer -prompt-install: true - -# Ne pas chroot (laisser à false pour une install normale) -dont-chroot: false - -# Désactive les vérifications réseau au démarrage -disable-cancel: false -disable-cancel-during-exec: true diff --git a/configs/releng/airootfs/etc/systemd/system/calamares.service b/configs/releng/airootfs/etc/systemd/system/calamares.service deleted file mode 100644 index c0898fe..0000000 --- a/configs/releng/airootfs/etc/systemd/system/calamares.service +++ /dev/null @@ -1,12 +0,0 @@ -[Unit] -Description=Calamares Installer -After=display-manager.service -Requires=display-manager.service - -[Service] -Type=simple -ExecStart=/usr/bin/calamares -Restart=on-failure - -[Install] -WantedBy=graphical.target \ No newline at end of file diff --git a/configs/releng/airootfs/usr/bin/fws-installer b/configs/releng/airootfs/usr/bin/fws-installer deleted file mode 100755 index f16c161..0000000 --- a/configs/releng/airootfs/usr/bin/fws-installer +++ /dev/null @@ -1,107 +0,0 @@ -#!/bin/bash -# ============================================================ -# FWS Linux — fws-installer -# Script de lancement de Calamares -# ============================================================ - -set -euo pipefail - -# Vérifie que Calamares est installé -if ! command -v calamares >/dev/null 2>&1; then - echo "ERREUR : calamares n'est pas installé." - exit 1 -fi - -# Vérifie qu'on tourne bien en live -if [ ! -d /run/archiso ]; then - echo "ATTENTION : Ce script doit être lancé depuis le live FWS." -fi - -choose_desktop() { - local selection - - if command -v zenity >/dev/null 2>&1; then - selection=$(zenity --list \ - --title="Choix de l'environnement" \ - --width=520 \ - --height=320 \ - --radiolist \ - --print-column=2 \ - --column="Choisir" --column="Environnement" --column="Description" \ - TRUE "xfce" "Léger et classique" \ - FALSE "kde" "KDE Plasma" \ - FALSE "gnome" "GNOME" \ - FALSE "hyprland" "Wayland / Hyprland" \ - --text="Sélectionne l'environnement desktop à installer") || exit 1 - - printf '%s' "$selection" - return 0 - fi - - printf 'xfce' -} - -DESKTOP="${FWS_DESKTOP:-xfce}" -DESKTOP_EXPLICIT=0 -CALAMARES_ARGS=() - -while [ "$#" -gt 0 ]; do - case "$1" in - -d|--desktop) - shift - DESKTOP="${1:-xfce}" - DESKTOP_EXPLICIT=1 - ;; - --desktop=*) - DESKTOP="${1#*=}" - DESKTOP_EXPLICIT=1 - ;; - *) - CALAMARES_ARGS+=("$1") - ;; - esac - shift || true -done - -if [ "$DESKTOP_EXPLICIT" -eq 0 ] && [ -z "${FWS_DESKTOP:-}" ]; then - DESKTOP="$(choose_desktop)" -fi - -case "$DESKTOP" in - xfce|kde|gnome|hyprland) - export FWS_DESKTOP="$DESKTOP" - ;; - *) - echo "Environnement invalide: $DESKTOP" - exit 1 - ;; -esac - -# Lance Calamares avec les droits root -# -D6 active les logs de debug (retirer en production) -if [ "$EUID" -ne 0 ]; then - if command -v sudo >/dev/null 2>&1; then - # Persist the chosen desktop for Calamares (read by shellprocess before chroot) - if [ -n "${FWS_DESKTOP:-}" ]; then - mkdir -p /run - printf '%s' "$FWS_DESKTOP" > /run/fws-desktop - fi - exec sudo -E calamares "${CALAMARES_ARGS[@]}" - elif command -v pkexec >/dev/null 2>&1; then - if [ -n "${FWS_DESKTOP:-}" ]; then - mkdir -p /run - printf '%s' "$FWS_DESKTOP" > /run/fws-desktop - fi - exec pkexec calamares "${CALAMARES_ARGS[@]}" - else - echo "ERREUR : Impossible de lancer Calamares en tant que root (sudo/pkexec non trouvés)." - exit 1 - fi -else - if [ -n "${FWS_DESKTOP:-}" ]; then - mkdir -p /run - printf '%s' "$FWS_DESKTOP" > /run/fws-desktop - fi - exec calamares "${CALAMARES_ARGS[@]}" -fi - diff --git a/configs/releng/airootfs/usr/local/bin/fws-desktop-init-common b/configs/releng/airootfs/usr/local/bin/fws-desktop-init-common deleted file mode 100755 index f87956d..0000000 --- a/configs/releng/airootfs/usr/local/bin/fws-desktop-init-common +++ /dev/null @@ -1,96 +0,0 @@ -#!/bin/bash -set -euo pipefail - -fws_first_user() { - awk -F: '$3 >= 1000 && $1 != "nobody" { print $1; exit }' /etc/passwd -} - -FWS_LOG=/var/log/fws-desktop-init.log - -# Paquets communs à TOUS les bureaux graphiques. La cible de base n'installe -# rien de tout ça (packages.conf ne fait que des « remove »), donc chaque -# bureau doit les tirer explicitement : audio (PipeWire), applet réseau NM, -# accès volumes (gvfs), dossiers utilisateur, trousseau, polices (dont emoji). -# (Xfce a déjà sa propre liste complète et n'utilise pas ce tableau.) -FWS_BASE_PACKAGES=( - pipewire pipewire-alsa pipewire-pulse wireplumber pavucontrol - networkmanager network-manager-applet - gvfs gvfs-mtp gvfs-gphoto2 gvfs-smb - xdg-user-dirs xdg-user-dirs-gtk xdg-utils - gnome-keyring libsecret polkit - noto-fonts noto-fonts-emoji ttf-dejavu ttf-liberation -) - -fws_install_packages() { - # NE PAS faire « pacman -Sy » : rafraîchir les bases sans - # upgrader le système (partial upgrade) provoque des « conflicting - # files » / dépendances cassées → pacman sort en code 1. - # - # 1) Rafraîchit d'abord archlinux-keyring (seule exception admise au - # partial upgrade) : son hook relance pacman-key --populate et évite - # les erreurs de signature dans le chroot. - pacman -Sy --noconfirm --needed archlinux-keyring 2>&1 | tee -a "$FWS_LOG" || true - - # 2) -Syu COMPLET. On désactive CheckSpace à la volée via une conf - # temporaire (process substitution) : le calcul d'espace est non - # fiable pendant une install en chroot et peut faire échouer pacman. - # La conf du système installé (/etc/pacman.conf) reste intacte. - # --noconfirm sélectionne le provider par défaut (ex. - # qt6-multimedia-ffmpeg) sans bloquer sur une saisie. - if ! pacman --config <(sed 's/^[[:space:]]*CheckSpace/#CheckSpace/' /etc/pacman.conf) \ - -Syu --noconfirm --needed "$@" 2>&1 | tee -a "$FWS_LOG"; then - # Surface l'erreur réelle (sinon noyée/tronquée dans la boîte - # Calamares). Tout est aussi conservé dans $FWS_LOG sur la cible. - echo "" >&2 - echo "######## ÉCHEC pacman — log complet : $FWS_LOG (système installé) ########" >&2 - echo "######## Lignes d'erreur détectées : ########" >&2 - grep -iE "error|conflicting|exists in filesystem|no space|impossible|introuvable|failed" \ - "$FWS_LOG" | tail -n 25 >&2 - echo "#########################################################################" >&2 - return 1 - fi -} - -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_set_graphical_default() { - # Système installé : démarrer en mode graphique (lance le display manager). - # Idempotent ; le défaut systemd est déjà graphical.target mais on le rend - # explicite pour ne dépendre d'aucun héritage du squashfs archiso. - systemctl set-default graphical.target >/dev/null 2>&1 || true -} - -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 -} \ No newline at end of file diff --git a/configs/releng/airootfs/usr/local/bin/fws-desktop-init-gnome b/configs/releng/airootfs/usr/local/bin/fws-desktop-init-gnome deleted file mode 100755 index 15e9925..0000000 --- a/configs/releng/airootfs/usr/local/bin/fws-desktop-init-gnome +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/bash -set -euo pipefail - -. /usr/local/bin/fws-desktop-init-common - -first_user="$(fws_first_user)" - -fws_install_packages "${FWS_BASE_PACKAGES[@]}" gnome sddm -fws_disable_services lightdm.service gdm.service -fws_enable_services sddm.service -fws_set_graphical_default -fws_write_sddm_config "$first_user" gnome \ No newline at end of file diff --git a/configs/releng/airootfs/usr/local/bin/fws-desktop-init-hyprland b/configs/releng/airootfs/usr/local/bin/fws-desktop-init-hyprland deleted file mode 100755 index f6f0b5c..0000000 --- a/configs/releng/airootfs/usr/local/bin/fws-desktop-init-hyprland +++ /dev/null @@ -1,50 +0,0 @@ -#!/bin/bash -set -euo pipefail - -. /usr/local/bin/fws-desktop-init-common - -first_user="$(fws_first_user)" - -# Config Hyprland minimale + autostart (agent polkit, barre, applet réseau, -# notifications). Sans config ni agent polkit, la session est inutilisable -# pour un non-technicien (pas de raccourcis, pas d'élévation de privilèges GUI). -fws_write_hyprland_config() { - local user_name="$1" - [ -n "$user_name" ] && [ -d "/home/$user_name" ] || return 0 - local cfg_dir="/home/$user_name/.config/hypr" - install -d -m 755 "$cfg_dir" - if [ -f /usr/share/hypr/hyprland.conf ]; then - cp -f /usr/share/hypr/hyprland.conf "$cfg_dir/hyprland.conf" - else - cat > "$cfg_dir/hyprland.conf" <<'EOF' -$terminal = kitty -$menu = wofi --show drun -bind = SUPER, Q, exec, $terminal -bind = SUPER, R, exec, $menu -bind = SUPER, C, killactive -bind = SUPER, M, exit -EOF - fi - cat >> "$cfg_dir/hyprland.conf" <<'EOF' - -# ── FWS : démarrage automatique de la session ── -exec-once = systemctl --user start hyprpolkitagent -exec-once = waybar -exec-once = nm-applet --indicator -exec-once = mako -EOF - chown -R "$user_name:$user_name" "/home/$user_name/.config" -} - -# PipeWire/applet NM/polices viennent de FWS_BASE_PACKAGES ; hyprpolkitagent -# fournit l'agent d'authentification polkit pour Wayland/Hyprland. -fws_install_packages "${FWS_BASE_PACKAGES[@]}" \ - hyprland xdg-desktop-portal-hyprland xdg-desktop-portal-gtk \ - waybar wofi kitty mako swaybg swayidle swaylock \ - xorg-xwayland wl-clipboard grim slurp \ - qt5-wayland qt6-wayland hyprpolkitagent sddm -fws_disable_services lightdm.service gdm.service -fws_enable_services sddm.service -fws_set_graphical_default -fws_write_sddm_config "$first_user" hyprland -fws_write_hyprland_config "$first_user" \ No newline at end of file diff --git a/configs/releng/airootfs/usr/local/bin/fws-desktop-init-kde b/configs/releng/airootfs/usr/local/bin/fws-desktop-init-kde deleted file mode 100755 index ee89fd1..0000000 --- a/configs/releng/airootfs/usr/local/bin/fws-desktop-init-kde +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/bash -set -euo pipefail - -. /usr/local/bin/fws-desktop-init-common - -first_user="$(fws_first_user)" - -fws_install_packages "${FWS_BASE_PACKAGES[@]}" plasma-meta konsole dolphin sddm -fws_disable_services lightdm.service gdm.service -fws_enable_services sddm.service -fws_set_graphical_default -fws_write_sddm_config "$first_user" plasma \ No newline at end of file diff --git a/configs/releng/airootfs/usr/local/bin/fws-desktop-init-xfce b/configs/releng/airootfs/usr/local/bin/fws-desktop-init-xfce deleted file mode 100755 index 8da2930..0000000 --- a/configs/releng/airootfs/usr/local/bin/fws-desktop-init-xfce +++ /dev/null @@ -1,26 +0,0 @@ -#!/bin/bash -set -euo pipefail - -. /usr/local/bin/fws-desktop-init-common - -first_user="$(fws_first_user)" - -fws_install_packages \ - xfce4 xfce4-goodies \ - lightdm lightdm-gtk-greeter lightdm-gtk-greeter-settings \ - gvfs gvfs-mtp gvfs-gphoto2 gvfs-smb gvfs-nfs \ - pipewire pipewire-alsa pipewire-pulse wireplumber pavucontrol \ - network-manager-applet \ - xfce-polkit \ - xdg-user-dirs xdg-user-dirs-gtk xdg-utils \ - gnome-keyring libsecret \ - noto-fonts noto-fonts-emoji ttf-dejavu ttf-liberation \ - ffmpegthumbnailer tumbler \ - blueman \ - xorg-server xorg-xinit xorg-xrandr arandr \ - accountsservice \ - upower -fws_disable_services sddm.service gdm.service -fws_enable_services lightdm.service -fws_set_graphical_default -fws_write_lightdm_config "$first_user" xfce \ No newline at end of file diff --git a/configs/releng/airootfs/usr/local/bin/fws-pick-desktop b/configs/releng/airootfs/usr/local/bin/fws-pick-desktop deleted file mode 100755 index dfdde95..0000000 --- a/configs/releng/airootfs/usr/local/bin/fws-pick-desktop +++ /dev/null @@ -1,41 +0,0 @@ -#!/bin/bash -# ============================================================ -# FWS — Sélecteur d'environnement de bureau (LIVE uniquement) -# -# Le paquet calamares (AUR) ne compile PAS le module packagechooser : -# on choisit donc le bureau ICI, dans le live, AVANT de lancer Calamares. -# Le choix est écrit dans /run/fws-desktop, lu ensuite par : -# - le module Calamares fws-desktop-choice (validation), -# - shellprocess.conf → /usr/local/bin/fws-desktop-init-. -# ============================================================ -set -u - -STATE=/run/fws-desktop -DEFAULT=xfce -VALID_RE='^(xfce|kde|gnome|hyprland)$' - -choice="" - -# Dialogue graphique si zenity + X sont disponibles ; sinon repli silencieux. -if command -v zenity >/dev/null 2>&1 && [ -n "${DISPLAY:-}" ]; then - choice="$(zenity --list --radiolist \ - --title="FWS — Environnement de bureau" \ - --text="Choisissez le bureau à installer :" \ - --width=560 --height=360 \ - --column="Choix" --column="id" --column="Bureau" \ - --hide-column=2 --print-column=2 \ - TRUE xfce "Xfce — léger, stable et rapide (recommandé)" \ - FALSE kde "KDE Plasma — moderne et très personnalisable" \ - FALSE gnome "GNOME — épuré et intuitif" \ - FALSE hyprland "Hyprland — compositeur Wayland dynamique" \ - 2>/dev/null)" -fi - -# Normalisation : toute valeur vide / annulée / invalide → bureau par défaut. -choice="$(printf '%s' "$choice" | tr -d '[:space:]')" -if ! printf '%s' "$choice" | grep -Eq "$VALID_RE"; then - choice="$DEFAULT" -fi - -printf '%s' "$choice" > "$STATE" -exit 0 diff --git a/configs/releng/airootfs/usr/share/applications/fws-install.desktop b/configs/releng/airootfs/usr/share/applications/fws-install.desktop deleted file mode 100644 index 1407706..0000000 --- a/configs/releng/airootfs/usr/share/applications/fws-install.desktop +++ /dev/null @@ -1,13 +0,0 @@ -[Desktop Entry] -Version=1.0 -Type=Application -Name=Installer FWS Linux -Name[fr]=Installer FWS Linux -Comment=Installe FWS Linux sur votre machine -Comment[fr]=Installe FWS Linux sur votre machine -Exec=fws-installer -Icon=/etc/calamares/branding/fws/logo.png -Terminal=false -Categories=System; -Keywords=install;installer;fws;calamares; -StartupNotify=true diff --git a/setup-calamares.sh b/setup-aur.sh similarity index 100% rename from setup-calamares.sh rename to setup-aur.sh