Debian 13 : le script complet que j’utilise pour obtenir une machine propre, sécurisée et prête à l’emploi
Installer Debian, ce n’est pas compliqué.
En revanche, la remettre exactement comme on l’aime, avec les bons dépôts, les bons outils, les bons réglages GNOME, le bon boot, un minimum de sécurité, Steam, Tor, ProtonVPN, les codecs, les outils réseau et tout le reste… ça prend vite du temps.
À force de refaire les mêmes étapes, j’ai fini par regrouper toute ma post-install dans un script unique.
L’idée n’est pas de transformer Debian en distribution exotique.
Le but est plus simple : obtenir une Debian 13 stable, propre, cohérente, confortable au quotidien et suffisamment complète pour travailler, naviguer et jouer.
Avant de lancer ce script ,veillez à activer le secureboot dans le bios et pendant l’installation de debian choisissez de chiffrer votre disque avec lvm pour plus de securité !
En résumé
Ce script automatise une vraie post-install Debian desktop :
- dépôts Debian complets
- firmwares et microcodes
- GNOME + thème + outils
- boot propre avec Plymouth Moonlight
- Firefox via Mozilla, Brave, Steam, Tor Browser, Wine, ProtonVPN
- LibreOffice, Flatpak, Flatseal, GIMP, Inkscape
- UFW, AppArmor, quelques réglages de hardening
- optimisation laptop (TLP, zram, trim SSD)
- outils de monitoring et helpers système
Ce que fait le script
Concrètement, le script couvre les blocs suivants :
Base système
- activation de
main contrib non-free non-free-firmware - mise à jour complète
- installation des outils de base
Support matériel
- firmwares non libres
- microcodes Intel / AMD
- outils GPU / vidéo
Interface
- GNOME Tweaks
- Extension Manager
- Dash to Dock
- icônes Tela Circle Green
- helpers de thème GNOME
Boot
- GRUB discret
- Plymouth Moonlight
- démarrage plus silencieux
Sécurité
- UFW
- AppArmor
- ClamAV
- quelques réglages sysctl raisonnables
Réseau
- Wireshark
- Nmap
- dnsutils
- net-tools
- mtr
- tcpdump
- iperf3
- arp-scan
Applications
- Firefox via dépôt Mozilla
- Brave via dépôt officiel
- Tor Browser
- Steam
- Wine + Winetricks
- ProtonVPN
- LibreOffice complet
- Flatpak + Flatseal
Création et productivité
- GIMP
- Inkscape
- scanner
- impression
- outils PDF
Monitoring / maintenance
- btop, htop, fastfetch
- smartmontools
- nvme-cli
- Timeshift
- scripts de healthcheck et rapport GPU
Optimisation laptop
- TLP
- zram
- trim SSD
Ce que ce script n’essaie pas de faire
Il n’installe pas tout et n’importe quoi juste pour “faire monter un score”.
Par exemple :
- pas de
openssh-serverpar défaut- pas de
fail2bansi le portable n’expose pas SSH- pas de hardening serveur extrême qui ruine le confort d’usage
Comment utiliser le script
1) Créer le fichier
nano debian13_premium_interactif.sh
2) Coller le script complet
Le script complet est plus bas dans l’article.
3) Rendre le fichier exécutable
chmod +x debian13_premium_interactif.sh
Petit rappel utile : chmod +x ajoute le droit d’exécution au fichier.
Sans cette commande, Linux voit simplement ton script comme un fichier texte.
4) Vérifier la syntaxe
bash -n debian13_premium_interactif.sh
Si la commande ne renvoie rien, c’est bon.
5) Lancer le script
sudo ./debian13_premium_interactif.sh
6) Choisir l’installation complète
14) Tout installer - V2 CYBER + GODMODE
Conseil
Si tu veux simplement reproduire toute la config décrite ici, prends directement l’option 14.
Le menu interactif est pratique, mais dans mon cas c’est cette option que j’utilise.
Script complet
#!/usr/bin/env bash
set -Eeuo pipefail
trap 'echo; echo "[ERREUR] Ligne ${LINENO}. Le script a rencontré une erreur." >&2' ERR
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
LOG_FILE="${SCRIPT_DIR}/debian13-premium-install.log"
exec > >(tee -a "$LOG_FILE") 2>&1
CODENAME="$(. /etc/os-release && echo "${VERSION_CODENAME:-}")"
REAL_USER="${SUDO_USER:-${USER}}"
REAL_HOME="$(getent passwd "$REAL_USER" | cut -d: -f6)"
REAL_UID="$(id -u "$REAL_USER")"
REAL_GID="$(id -g "$REAL_USER")"
if [[ $EUID -ne 0 ]]; then
echo "Ce script doit être lancé avec sudo ou en root."
exit 1
fi
if [[ "$CODENAME" != "trixie" ]]; then
echo "Attention : ce script a été prévu pour Debian 13 / trixie. Système détecté : ${CODENAME:-inconnu}."
read -r -p "Continuer quand même ? [o/N] " ans
[[ "$ans" =~ ^[oOyY]$ ]] || exit 1
fi
export DEBIAN_FRONTEND=noninteractive
msg() { echo; echo "==> $*"; }
warn() { echo "[!] $*"; }
ok() { echo "[OK] $*"; }
configure_debian_repos() {
msg "Activation de main contrib non-free non-free-firmware"
cat >/etc/apt/sources.list <<EOF
# Debian 13 (trixie)
deb http://deb.debian.org/debian trixie main contrib non-free non-free-firmware
deb http://deb.debian.org/debian trixie-updates main contrib non-free non-free-firmware
deb http://security.debian.org/debian-security trixie-security main contrib non-free non-free-firmware
EOF
apt-get update
ok "Dépôts Debian configurés"
}
ensure_base_tools() {
msg "Installation des outils de base"
apt-get update
apt-get install -y \
apt-transport-https ca-certificates curl wget gnupg gpg jq \
lsb-release unzip zip p7zip-full unrar \
git rsync file xdg-utils dbus-x11 dconf-cli build-essential \
bash-completion nano vim sudo sed grep tar gzip xz-utils
}
full_upgrade() {
msg "Mise à niveau complète"
apt-get update
apt-get full-upgrade -y
apt-get autoremove -y
apt-get autoclean -y
ok "Système mis à jour"
}
install_firmware() {
msg "Installation des firmwares et microcodes"
local pkgs=(firmware-linux firmware-misc-nonfree)
if grep -qi intel /proc/cpuinfo; then pkgs+=(intel-microcode); fi
if grep -qi amd /proc/cpuinfo; then pkgs+=(amd64-microcode); fi
apt-get install -y "${pkgs[@]}"
ok "Firmwares installés"
}
install_desktop_base() {
msg "Installation du socle GNOME / confort"
apt-get install -y \
gnome-tweaks gnome-shell-extensions gnome-shell-extension-manager \
gnome-browser-connector dconf-editor baobab file-roller \
adwaita-icon-theme-full papirus-icon-theme gnome-software-plugin-flatpak
ok "Socle GNOME installé"
}
install_fonts() {
msg "Installation des polices"
apt-get install -y \
fonts-cantarell fonts-inter fonts-noto fonts-noto-cjk \
fonts-firacode fonts-jetbrains-mono fonts-font-awesome
ok "Polices installées"
}
install_codecs_media() {
msg "Installation codecs et multimédia"
apt-get install -y \
ffmpeg vlc mpv pavucontrol \
gstreamer1.0-libav gstreamer1.0-plugins-good \
gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly
ok "Codecs installés"
}
install_network_tools() {
msg "Installation des outils réseau"
apt-get install -y \
wireshark nmap dnsutils net-tools traceroute whois tcpdump \
mtr ethtool iperf3 arp-scan curl wget rsync openssh-client \
nftables inetutils-ping inetutils-traceroute bind9-dnsutils
if getent group wireshark >/dev/null 2>&1; then
usermod -aG wireshark "$REAL_USER" || true
fi
ok "Outils réseau installés"
}
install_security_stack() {
msg "Installation de la pile sécurité"
apt-get install -y \
ufw gufw apparmor apparmor-utils \
clamav clamav-daemon clamtk rkhunter chkrootkit
systemctl enable apparmor || true
ufw default deny incoming || true
ufw default allow outgoing || true
yes | ufw enable || true
freshclam || true
ok "Sécurité installée et UFW activé"
}
install_monitoring_backup() {
msg "Installation monitoring / sauvegarde"
apt-get install -y \
btop htop fastfetch lm-sensors smartmontools nvme-cli \
deja-dup timeshift
systemctl enable smartmontools || true
ok "Monitoring et sauvegarde installés"
}
install_creative_tools() {
msg "Installation outils créatifs / PDF / impression"
apt-get install -y \
gimp inkscape simple-scan cups system-config-printer \
ghostscript poppler-utils imagemagick
ok "Outils créatifs / PDF installés"
}
install_office_suite() {
msg "Installation bureautique LibreOffice"
apt-get install -y \
libreoffice libreoffice-l10n-fr libreoffice-help-fr \
libreoffice-gtk3 libreoffice-style-colibre libreoffice-style-breeze \
hunspell-fr mythes-fr hyphen-fr
ok "LibreOffice installé"
}
install_reading_apps() {
msg "Installation lecture / confort"
apt-get install -y foliate evince okular loupe
ok "Applications de lecture installées"
}
configure_plymouth_grub() {
msg "Configuration de Plymouth et d'un démarrage discret"
apt-get install -y plymouth plymouth-themes
if grep -q '^GRUB_TERMINAL=' /etc/default/grub; then
sed -i 's/^GRUB_TERMINAL=.*/GRUB_TERMINAL=console/' /etc/default/grub
else
echo 'GRUB_TERMINAL=console' >> /etc/default/grub
fi
if grep -q '^GRUB_DEFAULT=' /etc/default/grub; then
sed -i 's/^GRUB_DEFAULT=.*/GRUB_DEFAULT=0/' /etc/default/grub
else
echo 'GRUB_DEFAULT=0' >> /etc/default/grub
fi
if grep -q '^GRUB_TIMEOUT=' /etc/default/grub; then
sed -i 's/^GRUB_TIMEOUT=.*/GRUB_TIMEOUT=0/' /etc/default/grub
else
echo 'GRUB_TIMEOUT=0' >> /etc/default/grub
fi
if grep -q '^GRUB_TIMEOUT_STYLE=' /etc/default/grub; then
sed -i 's/^GRUB_TIMEOUT_STYLE=.*/GRUB_TIMEOUT_STYLE=hidden/' /etc/default/grub
else
echo 'GRUB_TIMEOUT_STYLE=hidden' >> /etc/default/grub
fi
if grep -q '^GRUB_CMDLINE_LINUX_DEFAULT=' /etc/default/grub; then
sed -i 's|^GRUB_CMDLINE_LINUX_DEFAULT=.*|GRUB_CMDLINE_LINUX_DEFAULT="quiet splash loglevel=3 rd.systemd.show_status=0 vt.global_cursor_default=0"|' /etc/default/grub
else
echo 'GRUB_CMDLINE_LINUX_DEFAULT="quiet splash loglevel=3 rd.systemd.show_status=0 vt.global_cursor_default=0"' >> /etc/default/grub
fi
if grep -q '^GRUB_CMDLINE_LINUX=' /etc/default/grub; then
sed -i 's|^GRUB_CMDLINE_LINUX=.*|GRUB_CMDLINE_LINUX=""|' /etc/default/grub
else
echo 'GRUB_CMDLINE_LINUX=""' >> /etc/default/grub
fi
if grep -q '^GRUB_GFXMODE=' /etc/default/grub; then
sed -i 's/^GRUB_GFXMODE=.*/GRUB_GFXMODE=1920x1080x32/' /etc/default/grub
else
echo 'GRUB_GFXMODE=1920x1080x32' >> /etc/default/grub
fi
sed -i 's/^quiet_boot="0"/quiet_boot="1"/' /etc/grub.d/10_linux || true
if plymouth-set-default-theme -l 2>/dev/null | grep -qx 'moonlight'; then
plymouth-set-default-theme -R moonlight || true
ok "Thème Plymouth activé : moonlight"
else
warn "Le thème Moonlight n'est pas listé par Plymouth sur cette machine. Plymouth reste installé, et tu pourras choisir un autre thème avec : sudo plymouth-set-default-theme -l"
fi
update-grub || true
update-initramfs -u || true
ok "GRUB et initramfs mis à jour"
}
install_tela_circle_green() {
msg "Installation de Tela Circle Green"
apt-get install -y gtk2-engines-murrine sassc
local tmpdir
tmpdir="$(mktemp -d)"
if git clone --depth=1 https://github.com/vinceliuice/Tela-circle-icon-theme.git "$tmpdir/tela-circle"; then
bash "$tmpdir/tela-circle/install.sh" -d /usr/share/icons -c green
ok "Tela Circle Green installé"
else
warn "Échec du clonage de Tela Circle"
fi
rm -rf "$tmpdir"
}
create_user_theme_helpers() {
msg "Création des helpers GNOME Cyber"
install -d -m 0755 "$REAL_HOME/.config"
cat >"$REAL_HOME/.config/debian-premium-apply-theme.sh" <<'EOF'
#!/usr/bin/env bash
set -e
if command -v gsettings >/dev/null 2>&1; then
gsettings set org.gnome.desktop.interface color-scheme 'prefer-dark' || true
gsettings set org.gnome.desktop.interface gtk-theme 'Adwaita-dark' || true
gsettings set org.gnome.desktop.interface icon-theme 'Tela-circle-green' || true
gsettings set org.gnome.desktop.interface font-name 'Inter 10' || true
gsettings set org.gnome.desktop.interface document-font-name 'Inter 10' || true
gsettings set org.gnome.desktop.interface monospace-font-name 'JetBrains Mono 10' || true
gsettings set org.gnome.desktop.wm.preferences button-layout ':minimize,maximize,close' || true
gsettings set org.gnome.desktop.interface enable-animations true || true
fi
EOF
cat >"$REAL_HOME/.config/debian-premium-enable-dock.sh" <<'EOF'
#!/usr/bin/env bash
set -e
EXT='dash-to-dock@micxgx.gmail.com'
if command -v gnome-extensions >/dev/null 2>&1; then
gnome-extensions enable "$EXT" || true
fi
gsettings set org.gnome.shell.extensions.dash-to-dock dock-position 'BOTTOM' || true
gsettings set org.gnome.shell.extensions.dash-to-dock extend-height false || true
gsettings set org.gnome.shell.extensions.dash-to-dock autohide true || true
gsettings set org.gnome.shell.extensions.dash-to-dock multi-monitor true || true
gsettings set org.gnome.shell.extensions.dash-to-dock transparency-mode 'FIXED' || true
gsettings set org.gnome.shell.extensions.dash-to-dock background-opacity 0.65 || true
gsettings set org.gnome.shell.extensions.dash-to-dock dash-max-icon-size 42 || true
EOF
cat >"$REAL_HOME/.config/debian-premium-transparent-top-bar.txt" <<'EOF'
Transparent Top Bar n'est pas empaqueté officiellement dans Debian trixie.
Le script installe gnome-browser-connector et Extension Manager.
Après reconnexion GNOME :
1) ouvre "Extension Manager"
2) cherche "Transparent Top Bar"
3) installe l'extension compatible avec ta version GNOME
4) active-la
Extensions GNOME utiles à ajouter ensuite :
- Blur my Shell
- Just Perfection
- AppIndicator and KStatusNotifierItem Support
- Clipboard Indicator
- Caffeine
EOF
cat >"$REAL_HOME/.config/debian-premium-cyber-terminal.txt" <<'EOF'
Réglages conseillés pour un look cyber dark green :
- Terminal GNOME profil sombre
- police JetBrains Mono 11 ou Fira Code 11
- palette verte discrète
- fastfetch au démarrage si tu veux
Exemple à ajouter à ~/.bashrc :
if command -v fastfetch >/dev/null 2>&1; then
fastfetch
fi
EOF
cat >"$REAL_HOME/.config/debian-premium-cyber-wallpaper.txt" <<'EOF'
Pour le style Cyber Dark Green :
- choisis un fond sombre noir/vert dans Paramètres > Arrière-plan
- garde Adwaita-dark + Tela-circle-green
- active Transparent Top Bar + Blur my Shell
EOF
chown "$REAL_UID:$REAL_GID" \
"$REAL_HOME/.config/debian-premium-apply-theme.sh" \
"$REAL_HOME/.config/debian-premium-enable-dock.sh" \
"$REAL_HOME/.config/debian-premium-transparent-top-bar.txt" \
"$REAL_HOME/.config/debian-premium-cyber-terminal.txt" \
"$REAL_HOME/.config/debian-premium-cyber-wallpaper.txt"
chmod +x "$REAL_HOME/.config/debian-premium-apply-theme.sh" "$REAL_HOME/.config/debian-premium-enable-dock.sh"
ok "Helpers GNOME créés dans ~/.config"
}
remove_firefox_esr_and_install_mozilla() {
msg "Suppression de Firefox ESR et installation de Firefox Mozilla"
apt-get remove -y firefox-esr || true
install -d -m 0755 /etc/apt/keyrings
wget -q https://packages.mozilla.org/apt/repo-signing-key.gpg -O- | gpg --dearmor -o /etc/apt/keyrings/packages.mozilla.org.gpg
echo 'deb [signed-by=/etc/apt/keyrings/packages.mozilla.org.gpg] https://packages.mozilla.org/apt mozilla main' >/etc/apt/sources.list.d/mozilla.list
cat >/etc/apt/preferences.d/mozilla <<EOF
Package: *
Pin: origin packages.mozilla.org
Pin-Priority: 1000
EOF
apt-get update
apt-get install -y firefox firefox-l10n-fr
ok "Firefox Mozilla installé"
}
install_brave() {
msg "Installation de Brave"
curl -fsSLo /usr/share/keyrings/brave-browser-archive-keyring.gpg https://brave-browser-apt-release.s3.brave.com/brave-browser-archive-keyring.gpg
echo 'deb [signed-by=/usr/share/keyrings/brave-browser-archive-keyring.gpg arch=amd64] https://brave-browser-apt-release.s3.brave.com/ stable main' >/etc/apt/sources.list.d/brave-browser-release.list
apt-get update
apt-get install -y brave-browser
ok "Brave installé"
}
install_steam() {
msg "Installation de Steam"
dpkg --add-architecture i386
apt-get update
apt-get install -y steam-installer
ok "Steam installé"
}
install_protonvpn() {
msg "Installation de ProtonVPN"
local tmpdeb="/tmp/protonvpn-stable-release.deb"
rm -f /etc/apt/sources.list.d/protonvpn-stable.list /etc/apt/sources.list.d/*proton* || true
wget -O "$tmpdeb" https://repo.protonvpn.com/debian/dists/stable/main/binary-all/protonvpn-stable-release_1.0.8_all.deb
dpkg -i "$tmpdeb" || apt-get install -fy
apt-get update
apt-get install -y proton-vpn-gnome-desktop || apt-get install -y proton-vpn-cli || true
ok "ProtonVPN installé"
}
install_privacy_windows_tools() {
msg "Installation de Tor Browser et Wine"
dpkg --add-architecture i386
apt-get update
apt-get install -y \
torbrowser-launcher \
wine wine64 wine32 winetricks libwine fonts-wine
ok "Tor Browser et Wine installés"
}
install_flatpak_stack() {
msg "Installation de Flatpak / Flathub / Flatseal"
apt-get install -y flatpak
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo || true
flatpak install -y flathub com.github.tchx84.Flatseal || true
ok "Flatpak et Flatseal installés"
}
install_gaming_tools() {
msg "Installation des outils gaming"
apt-get install -y gamemode mangohud goverlay
ok "Outils gaming installés"
}
install_dash_to_dock() {
msg "Installation de Dash to Dock"
apt-get install -y gnome-shell-extension-dashtodock
ok "Dash to Dock installé"
}
install_laptop_power_stack() {
msg "Installation de la pile autonomie / laptop"
apt-get install -y tlp tlp-rdw powertop acpi acpid smartmontools
systemctl enable tlp || true
systemctl enable acpid || true
systemctl mask power-profiles-daemon || true
systemctl stop power-profiles-daemon || true
ok "TLP installé ; power-profiles-daemon neutralisé pour éviter les conflits"
}
install_auto_cpufreq_best_effort() {
msg "Tentative d'installation d'auto-cpufreq"
if apt-cache show auto-cpufreq >/dev/null 2>&1; then
apt-get install -y auto-cpufreq
systemctl enable auto-cpufreq || true
ok "auto-cpufreq installé via APT"
else
warn "auto-cpufreq non disponible dans APT Debian. Je laisse TLP comme base fiable."
fi
}
configure_zram() {
msg "Activation de zram"
if apt-cache show systemd-zram-generator >/dev/null 2>&1; then
apt-get install -y systemd-zram-generator
install -d /etc/systemd/zram-generator.conf.d
cat >/etc/systemd/zram-generator.conf.d/cyber.conf <<EOF
[zram0]
zram-size = ram / 2
compression-algorithm = zstd
EOF
systemctl daemon-reload
ok "zram configuré via systemd-zram-generator"
else
warn "systemd-zram-generator absent du dépôt ; zram ignoré"
fi
}
configure_ssd_trim() {
msg "Activation du trim SSD hebdomadaire"
systemctl enable fstrim.timer || true
systemctl start fstrim.timer || true
ok "fstrim.timer activé"
}
configure_sysctl_hardening() {
msg "Application d'un durcissement sysctl raisonnable"
cat >/etc/sysctl.d/99-debian-cyber.conf <<EOF
kernel.kptr_restrict = 2
kernel.dmesg_restrict = 1
kernel.unprivileged_bpf_disabled = 1
net.ipv4.conf.all.rp_filter = 1
net.ipv4.conf.default.rp_filter = 1
net.ipv4.icmp_echo_ignore_broadcasts = 1
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.default.accept_redirects = 0
net.ipv6.conf.all.accept_redirects = 0
net.ipv6.conf.default.accept_redirects = 0
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
fs.protected_fifos = 2
fs.protected_regular = 2
vm.swappiness = 10
EOF
sysctl --system || true
ok "Durcissement sysctl appliqué"
}
configure_journald_limits() {
msg "Réglage raisonnable de la taille des journaux"
install -d /etc/systemd/journald.conf.d
cat >/etc/systemd/journald.conf.d/size.conf <<EOF
[Journal]
SystemMaxUse=300M
RuntimeMaxUse=150M
EOF
systemctl restart systemd-journald || true
ok "Journald limité proprement"
}
configure_bash_cyber() {
msg "Ajout d'un helper bash cyber pour $REAL_USER"
local bashrc="$REAL_HOME/.bashrc"
if ! grep -q 'DEBIAN_CYBER_FASTFETCH' "$bashrc" 2>/dev/null; then
cat >>"$bashrc" <<'EOF'
# DEBIAN_CYBER_FASTFETCH
if command -v fastfetch >/dev/null 2>&1 && [[ $- == *i* ]]; then
fastfetch
fi
alias ll='ls -alF'
alias la='ls -A'
alias l='ls -CF'
EOF
chown "$REAL_UID:$REAL_GID" "$bashrc"
fi
ok "Helper bash ajouté"
}
install_secure_boot_tools() {
msg "Installation des outils Secure Boot"
apt-get install -y mokutil shim-signed sbctl || apt-get install -y mokutil shim-signed || true
ok "Outils Secure Boot installés"
}
install_android_tools() {
msg "Installation des outils Android"
apt-get install -y adb fastboot mtp-tools jmtpfs android-sdk-platform-tools-common
ok "Outils Android installés"
}
install_gpu_helpers() {
msg "Préparation des outils GPU / vidéo"
apt-get install -y mesa-utils vulkan-tools vainfo intel-media-va-driver mesa-vulkan-drivers firmware-amd-graphics || true
cat >"$REAL_HOME/.config/debian-premium-gpu-report.sh" <<'EOF'
#!/usr/bin/env bash
set -e
echo "===== GPU REPORT ====="
lspci | grep -Ei 'vga|3d|display' || true
echo
echo "===== OPENGL ====="
command -v glxinfo >/dev/null 2>&1 && glxinfo -B || true
echo
echo "===== VULKAN ====="
command -v vulkaninfo >/dev/null 2>&1 && vulkaninfo --summary || true
echo
echo "===== VAAPI ====="
command -v vainfo >/dev/null 2>&1 && vainfo || true
echo
echo "===== NVIDIA SUGGESTION ====="
if lspci | grep -qi nvidia; then
echo "GPU NVIDIA détecté. Vérifie les paquets Debian adaptés avant d'installer un pilote propriétaire."
else
echo "Pas de GPU NVIDIA détecté."
fi
EOF
chown "$REAL_UID:$REAL_GID" "$REAL_HOME/.config/debian-premium-gpu-report.sh"
chmod +x "$REAL_HOME/.config/debian-premium-gpu-report.sh"
ok "Helper GPU créé : ~/.config/debian-premium-gpu-report.sh"
}
install_maintenance_tools() {
msg "Installation maintenance / diagnostic"
apt-get install -y debsums apt-listbugs apt-listchanges needrestart ncdu plocate inxi usbutils pciutils
updatedb || true
cat >"$REAL_HOME/.config/debian-premium-healthcheck.sh" <<'EOF'
#!/usr/bin/env bash
set -e
echo "===== HEALTHCHECK DEBIAN PREMIUM ====="
echo
echo "--- Espace disque ---"
df -h
echo
echo "--- Mémoire / zram ---"
free -h
swapon --show || true
echo
echo "--- Services sécurité ---"
systemctl --no-pager --full status ufw apparmor 2>/dev/null || true
echo
echo "--- SMART/NVME ---"
command -v smartctl >/dev/null 2>&1 && sudo smartctl --scan || true
command -v nvme >/dev/null 2>&1 && nvme list || true
echo
echo "--- Derniers échecs systemd ---"
systemctl --failed || true
echo
echo "--- Mises à jour dispo ---"
apt list --upgradable 2>/dev/null || true
EOF
chown "$REAL_UID:$REAL_GID" "$REAL_HOME/.config/debian-premium-healthcheck.sh"
chmod +x "$REAL_HOME/.config/debian-premium-healthcheck.sh"
ok "Helper healthcheck créé : ~/.config/debian-premium-healthcheck.sh"
}
install_terminal_tools() {
msg "Installation des outils terminal"
apt-get install -y kitty fastfetch zsh
ok "Kitty, fastfetch et zsh installés"
}
prepare_gdm_note() {
msg "Préparation d'une note GDM / écran de connexion"
cat >"$REAL_HOME/.config/debian-premium-gdm-note.txt" <<'EOF'
La personnalisation profonde de l'écran de connexion GDM est volontairement laissée manuelle.
Pourquoi : les hacks CSS/GDM cassent facilement après mises à jour GNOME.
Approche recommandée : garder GDM standard, soigner Plymouth + fond d'écran + session GNOME.
EOF
chown "$REAL_UID:$REAL_GID" "$REAL_HOME/.config/debian-premium-gdm-note.txt"
ok "Note GDM créée"
}
final_notes() {
cat <<EOF
============================================================
Installation terminée.
============================================================
Actions recommandées après redémarrage / reconnexion GNOME :
1) Appliquer le thème Cyber :
bash ~/.config/debian-premium-apply-theme.sh
2) Activer et régler Dash to Dock :
bash ~/.config/debian-premium-enable-dock.sh
3) Ouvrir Extension Manager et installer si compatibles :
- Transparent Top Bar
- Blur my Shell
- Just Perfection
- AppIndicator
- Clipboard Indicator
- Caffeine
4) Lire les notes créées :
~/.config/debian-premium-transparent-top-bar.txt
~/.config/debian-premium-cyber-terminal.txt
~/.config/debian-premium-cyber-wallpaper.txt
~/.config/debian-premium-gdm-note.txt
5) Vérifier le thème Plymouth :
sudo plymouth-set-default-theme
6) Redémarrer pour TLP / zram / groupes / GRUB / Plymouth.
7) Outils GODMODE disponibles ensuite :
bash ~/.config/debian-premium-gpu-report.sh
bash ~/.config/debian-premium-healthcheck.sh
Log d'installation : $LOG_FILE
============================================================
EOF
}
show_menu() {
cat <<'EOF'
================ Debian 13 ULTIMATE V2 CYBER ================
1) Préparer Debian (dépôts + outils de base + mise à jour)
2) Firmwares non libres + microcodes
3) Apparence premium (Plymouth/GRUB + Moonlight + Tela Circle Green + polices)
4) Bureau GNOME (Tweaks, Extension Manager, connecteur, Dash to Dock)
5) Multimédia (codecs, VLC, MPV)
6) Réseau (Wireshark, Nmap, DNS, MTR, outils LAN, etc.)
7) Sécurité (UFW, AppArmor, ClamAV, hardening sysctl)
8) Navigateurs / apps (Firefox Mozilla, Brave, Foliate, LibreOffice)
9) Gaming / VPN / Flatpak (Steam, GameMode, MangoHud, ProtonVPN, Flatseal, Tor Browser, Wine)
10) Monitoring / sauvegarde (btop, smartmontools, nvme-cli, deja-dup, timeshift)
10b) Création / PDF / imprimante (GIMP, Inkscape, scanner, CUPS)
11) Laptop / performance (TLP, auto-cpufreq best effort, zram, trim SSD)
12) Terminal / look Cyber (kitty, fastfetch, helpers GNOME/Bash, notes GDM)
13) GODMODE utilitaire (Secure Boot, Android tools, GPU report, maintenance)
14) Tout installer - V2 CYBER + GODMODE
0) Quitter
=============================================================
EOF
}
run_choice() {
case "$1" in
1)
configure_debian_repos
ensure_base_tools
full_upgrade
;;
2)
install_firmware
;;
3)
configure_plymouth_grub
install_fonts
install_tela_circle_green
create_user_theme_helpers
;;
4)
install_desktop_base
install_dash_to_dock
create_user_theme_helpers
;;
5)
install_codecs_media
;;
6)
install_network_tools
;;
7)
install_security_stack
configure_sysctl_hardening
configure_journald_limits
;;
8)
remove_firefox_esr_and_install_mozilla
install_brave
install_office_suite
install_reading_apps
;;
9)
install_steam
install_gaming_tools
install_protonvpn
install_privacy_windows_tools
install_flatpak_stack
;;
10)
install_monitoring_backup
;;
10b)
install_creative_tools
;;
11)
install_laptop_power_stack
install_auto_cpufreq_best_effort
configure_zram
configure_ssd_trim
;;
12)
install_terminal_tools
create_user_theme_helpers
configure_bash_cyber
prepare_gdm_note
;;
13)
install_secure_boot_tools
install_android_tools
install_gpu_helpers
install_maintenance_tools
;;
14)
configure_debian_repos
ensure_base_tools
full_upgrade
install_firmware
install_desktop_base
install_fonts
install_codecs_media
install_network_tools
install_security_stack
configure_sysctl_hardening
configure_journald_limits
install_monitoring_backup
install_creative_tools
install_reading_apps
configure_plymouth_grub
install_tela_circle_green
create_user_theme_helpers
remove_firefox_esr_and_install_mozilla
install_brave
install_office_suite
install_steam
install_gaming_tools
install_protonvpn
install_privacy_windows_tools
install_flatpak_stack
install_dash_to_dock
install_laptop_power_stack
install_auto_cpufreq_best_effort
configure_zram
configure_ssd_trim
install_terminal_tools
configure_bash_cyber
prepare_gdm_note
install_secure_boot_tools
install_android_tools
install_gpu_helpers
install_maintenance_tools
final_notes
;;
0)
exit 0
;;
*)
warn "Choix invalide"
;;
esac
}
main() {
msg "Utilisateur cible pour la configuration GNOME : $REAL_USER"
while true; do
show_menu
read -r -p "Ton choix : " choice
run_choice "$choice"
if [[ "$choice" == "14" ]]; then
break
fi
echo
read -r -p "Revenir au menu ? [O/n] " back
if [[ "$back" =~ ^[nN]$ ]]; then
final_notes
break
fi
done
}
main "$@"
Après l’exécution
Une fois le script terminé, je conseille de faire ces deux commandes après redémarrage :
bash ~/.config/debian-premium-apply-theme.sh
bash ~/.config/debian-premium-enable-dock.sh
Ensuite, dans Extension Manager, j’ajoute généralement :
- Transparent Top Bar
- Blur my Shell
- Just Perfection
- AppIndicator
- Clipboard Indicator
- Caffeine
À l’usage, ce script me fait gagner un temps énorme.
Surtout, il me permet de retrouver une machine cohérente sans devoir me souvenir de 50 commandes différentes à chaque nouvelle installation.
Conclusion
Debian n’a pas besoin de mille couches de customisation pour être excellente. En revanche, une bonne post-install fait toute la différence.
Avec ce script, on obtient une base vraiment solide :
- stable
- assez sécurisée
- agréable à utiliser
- prête pour le travail, le réseau, le multimédia et un peu de gaming