#!/bin/bash
# =====================================================
# Script d'optimisation Debian 12 i386 pour Pentium 4
# Auteur : ChatGPT / Fabien
# =====================================================

echo "==> Vérification des privilèges..."
[ "$EUID" -ne 0 ] && echo "Lance ce script avec sudo." && exit 1

echo "==> Sauvegarde des fichiers de configuration importants..."
for f in /etc/sysctl.conf /etc/fstab /etc/default/grub /etc/systemd/journald.conf /etc/default/zramswap; do
    [ -f "$f" ] && cp -f "$f" "$f.bak"
done

echo "==> Mise à jour des paquets..."
apt update -y

echo "==> Installation des composants essentiels..."
apt install -y xorg xinit i3 falkon leafpad pcmanfm lxterminal dmenu \
               zram-tools cpufrequtils earlyoom preload abiword gnumeric

echo "==> Suppression des services inutiles..."
apt purge -y cups avahi-daemon modemmanager bluetooth exim4-base network-manager
systemctl disable systemd-timesyncd.service \
                   apt-daily.service apt-daily.timer \
                   apt-daily-upgrade.service apt-daily-upgrade.timer \
                   motd-news.service || true
systemctl mask systemd-resolved.service || true

echo "==> Optimisation du système (fstab, sysctl)..."
# sysctl
grep -q "swappiness" /etc/sysctl.conf || cat <<EOF >> /etc/sysctl.conf
vm.swappiness=10
vm.vfs_cache_pressure=200
net.ipv6.conf.all.disable_ipv6=1
net.ipv6.conf.default.disable_ipv6=1
EOF

sysctl -p

# fstab : ajouter noatime si pas déjà présent
sed -i '/ext4/ s/defaults/defaults,noatime,nodiratime/' /etc/fstab

echo "==> Configuration zram..."
sed -i 's/^PERCENTAGE=.*/PERCENTAGE=50/' /etc/default/zramswap 2>/dev/null || \
echo "PERCENTAGE=50" > /etc/default/zramswap
systemctl enable zramswap

echo "==> EarlyOOM (anti-freeze)..."
systemctl enable earlyoom

echo "==> Journaux systemd limités..."
sed -i 's/^#*SystemMaxUse=.*/SystemMaxUse=50M/' /etc/systemd/journald.conf
sed -i 's/^#*RuntimeMaxUse=.*/RuntimeMaxUse=10M/' /etc/systemd/journald.conf
systemctl restart systemd-journald

echo "==> Gouverneur CPU ondemand..."
echo 'GOVERNOR="ondemand"' > /etc/default/cpufrequtils
systemctl enable cpufrequtils

echo "==> Shell dash (plus rapide que bash)..."
echo "dash" | dpkg-reconfigure dash

echo "==> Désactivation de l’interface graphique au boot..."
systemctl set-default multi-user.target

echo "==> Activation de preload..."
systemctl enable preload

echo "==> Configuration de GRUB..."
sed -i 's/^GRUB_TIMEOUT=.*/GRUB_TIMEOUT=0/' /etc/default/grub
sed -i 's/^GRUB_CMDLINE_LINUX_DEFAULT=.*/GRUB_CMDLINE_LINUX_DEFAULT="quiet nosplash noresume zswap.enabled=1"/' /etc/default/grub
update-grub

echo "==> Création du ~/.xinitrc minimal..."
su -l $SUDO_USER -c 'echo -e "xsetroot -solid black\nexec i3" > ~/.xinitrc'

echo "==> Création du ~/.bash_profile (autostart i3 sur TTY1)..."
su -l $SUDO_USER -c 'echo "[[ -z \$DISPLAY && \$XDG_VTNR -eq 1 ]] && startx" > ~/.bash_profile'

echo "==> Configuration i3 (raccourcis et auto-start)..."
su -l $SUDO_USER -c 'mkdir -p ~/.config/i3 && cp /etc/i3/config ~/.config/i3/config && \
cat <<EOF >> ~/.config/i3/config

# --- Optimisation Fabien Pentium 4 ---
new_window pixel 1
new_float pixel 1

# Raccourcis pratiques
bindsym \$mod+Return exec lxterminal
bindsym \$mod+b exec falkon
bindsym \$mod+n exec pcmanfm
bindsym \$mod+p exec leafpad
bindsym \$mod+d exec dmenu_run
EOF'

echo "==> Nettoyage..."
apt autoremove -y --purge
apt clean

echo "✅ Optimisation terminée !"
echo "Reboot conseillé : sudo reboot"
