#!/bin/bash

set +e
trap '' ERR

# Supprimer le dépôt CD-ROM des sources APT (au tout début du script, dans l’OS installé)
sed -i '/cdrom:/d' /etc/apt/sources.list /etc/apt/sources.list.d/*.list 2>/dev/null || true
find /etc/apt/sources.list.d/ -type f -size 0 -delete

# Configuration apt : non-interactif
export DEBIAN_FRONTEND=noninteractive
export APT_LISTCHANGES_FRONTEND=none

# Filtre les warnings "W:" dans la sortie apt
filter_warn() { grep -v "^W:" || true; }

# Mettre à jour les sources sans afficher les warnings
apt-get update 2>&1 | filter_warn

# Installer les paquets de base nécessaires
apt-get install -y --no-install-recommends gpg dkms libdw-dev clang lld llvm flatpak linux-headers-$(uname -r) build-essential libglvnd-dev pkg-config 2>&1 | filter_warn

# Ajouter la clé et le dépôt XanMod
mkdir -p /etc/apt/keyrings
timeout 30 wget -qO /etc/apt/keyrings/xanmod-archive-keyring.gpg https://dl.xanmod.org/archive.key || true
echo 'deb [signed-by=/etc/apt/keyrings/xanmod-archive-keyring.gpg] http://deb.xanmod.org trixie main' > /etc/apt/sources.list.d/xanmod.list

# Ajouter la clé et le dépôt Kisak Mesa
timeout 30 gpg --keyserver keyserver.ubuntu.com --recv-keys EB8B81E14DA65431D7504EA8F63F0F2B90935439 || true
gpg --export EB8B81E14DA65431D7504EA8F63F0F2B90935439 > /etc/apt/trusted.gpg.d/kisak.gpg 2>/dev/null || true
echo 'deb https://ppa.launchpadcontent.net/kisak/kisak-mesa/ubuntu plucky main' > /etc/apt/sources.list.d/kisak-mesa.list
echo 'deb-src https://ppa.launchpadcontent.net/kisak/kisak-mesa/ubuntu plucky main' >> /etc/apt/sources.list.d/kisak-mesa.list

# Relancer la mise à jour des sources (pour les nouveaux dépôts)
apt-get update 2>&1 | filter_warn

# Installer le noyau XanMod
apt-get install -y linux-xanmod-x64v3 2>&1 | filter_warn

# Ajouter flathub à flatpak
timeout 30 flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo || true

# Supprimer Konqueror si présent
apt-get remove --purge -y konqueror 2>&1 | filter_warn

# Mettre le shell fish pour chaque utilisateur non root
for u in $(awk -F: '$3 >= 1000 && $3 < 65534 { print $1 }' /etc/passwd); do
    chsh -s /usr/bin/fish $u 2>/dev/null || true
done

# Activer le support i386 et mettre le système à niveau
dpkg --add-architecture i386 || true
apt-get update 2>&1 | filter_warn
apt-get -y dist-upgrade 2>&1 | filter_warn

exit 0
