diff --git a/install.sh b/install.sh new file mode 100644 index 0000000..844482a --- /dev/null +++ b/install.sh @@ -0,0 +1,265 @@ +#!/usr/bin/env bash + +# Bannière +cat wibian.figlet +echo -ne "\n" + +# Vérifie si le script est lancé avec les droits root +if [[ $EUID -ne 0 ]]; then + echo "Vous devez avoir les privilèges root pour exécuter le script, utiliser la commande : sudo bash install.sh" 2>&1 + exit 1 +fi + +username=$(id -u -n 1000) +builddir=$(pwd) + +# Changement de la langue par défaut +localectl set-locale LANG=fr_FR.UTF-8 +echo "La langue française a été définie par défaut pour ce système" + +# Définition du nom d'hôte +echo "- Quel nom d'hôte voulez-vous donner à cette nouvelle machine ?" +read machinename +clear +hostnamectl set-hostname $machinename +sed -i '1i 127.0.0.1\t'$machinename /etc/hosts + +# noatime pour les partitions ext4 +#cp /etc/fstab /etc/fstab.bck +#awk '!/^#/ && ($3 != "swap") && ($2 != "/media/cdrom0") { if(!match(/noatime/, $4)) $4=$4",noatime" } 1' /etc/fstab > /etc/fstab.tmp +#mv /etc/fstab.tmp /etc/fstab + +# Mise à jour de la liste des paquets disponibles et mise à jour des paquets installés +apt update +apt upgrade -y + +# Installation des composants du serveur graphique Xorg +apt install -y xorg xbacklight xbindkeys xinput xvkbd + +# Installation de l'environnement de bureau MATE en mode core +apt install -y mate-desktop-environment-core + +# Installation du gestionnaire d'affichage +apt install -y desktop-base lightdm lightdm-gtk-greeter-settings + +# Isntallations des outils de gestion de l'alimentation. +apt install -y acpi acpid + +# Installation des outils de gestion du son +apt install -y alsa-utils mate-media pulseaudio + +# Installation des outils de gestion des cartes réseaux +apt install -y network-manager-gnome network-manager-openvpn-gnome + +# Installation des outils liés au bluetooth +apt install -y blueman pulseaudio-module-bluetooth + +# Installation des outils liés aux imprimantes +apt install -y cups system-config-printer +apt install --install-recommends -y printer-driver-all + +# Installation d'un outil de notification et d'installation des mises à jour +apt install -y gnome-package-updater mate-indicator-applet package-update-indicator + +# Polices d'écritures and icônes +apt install -y fonts-recommended fonts-font-awesome papirus-icon-theme ttf-mscorefonts-installer + +# Activation des services fraichement installés +systemctl enable acpid +systemctl enable cups +systemctl enable bluetooth +systemctl enable lightdm + +# Installation des paquets complémentaires pour MATE +packages=( + alarm-clock-applet + atril + caja-admin + caja-mediainfo + caja-share + caja-eiciel + celluloid + cheese + dconf-editor + foliate + engrampa + eom + gnome-disk-utility + gnome-system-tools + gparted + greybird-gtk-theme + gtkhash + gucharmap + kazam + metadata-cleaner + mate-applets + mate-applet-brisk-menu + mate-calc + mate-dock-applet + mate-power-manager + mate-screensaver + mate-system-monitor + mate-tweak + mate-utils + peek + pluma + polybar + qshutdown + picom + redshift-gtk + seahorse + shutter + stacer + tilix + timeshift + variety + synaptic + xscreensaver-gl + zim +) + +for package in "${packages[@]}"; do + echo "Installation de $package..." + apt install -y $package +done + +# Installation des paquets utilitaires +apt install -y curl flatpak freerdp2-x11 figlet htop libnotify-bin nmap net-tools numlockx speedtest-cli stress s-tui swaks testdisk tldr tlp unzip whois wmctrl xdotool + +# Installation de la solution de virtualisation KVM +apt install -y bridge-utils dnsmasq-base qemu-system qemu-utils firewalld gir1.2-spiceclientgtk-3.0 libvirt-daemon-system virt-manager virt-viewer +adduser $username libvirt +export LIBVIRT_DEFAULT_URI='qemu:///system' +virsh net-start default +virsh net-autostart default + +# Installation des logiciels en fonction du profil d'utilisation (décommenter selon le besoin) +# apt install -y blender +# apt install -y brasero +# apt install -y caja-nextcloud +# apt install -y geany geany-plugin-addons geany-plugin-git-changebar geany-plugin-overview geany-plugin-spellcheck geany-plugin-treebrowser geany-plugin-vimode +apt install -y firefox-esr-l10n-fr +apt install -y thunderbird-l10n-fr +# apt install -y gimp gimp-data-extras gimp-help-fr +# apt install -y hugin +# apt install -y imagination +# apt install -y kdenlive +# apt install -y obs-studio +# apt install -y simple-scan + +# Désinstallation des paquets non désirés +apt remove -y fortunes-min + +# Logiciel hors dépôts : Applications Web +wget --recursive --no-parent --no-host-directories --no-directories --accept '*webapp-manager*deb' 'http://packages.linuxmint.com/pool/main/w/webapp-manager/' -P /tmp/wibian/ +release=$(ls /tmp/wibian/webapp-manager_1.* | tail -1) +apt install -y $release + +# Logiciel hors dépots : Youtube music (E: Sub-process /usr/bin/dpkg returned an error code) +#package="https://(.*)youtube-music_(.*).deb" +#wget $(curl -L -s https://api.github.com/repos/th-ch/youtube-music/releases/latest | grep -o -E $package) -P /tmp/wibian/ +#apt install -y /tmp/wibian/youtube-music_*.deb + +# Logiciel hors dépôts : PVE VDI Client +apt install -y python3-pip python3-proxmoxer python3-tk +git clone https://github.com/joshpatten/PVE-VDIClient.git +cd ./PVE-VDIClient/ +pip3 install PySimpleGUI --break-system-packages +cp vdiclient.py /usr/local/bin +chmod +x /usr/local/bin/vdiclient.py +cd $builddir + +# Flatpak (reboot nécéssaire) +flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo +flatpak install -y flathub \ +com.github.tchx84.Flatseal \ +io.github.giantpinkrobots.flatsweep \ +io.freetubeapp.FreeTube \ +com.github.geigi.cozy \ +io.crow_translate.CrowTranslate \ +com.discordapp.Discord \ +com.jgraph.drawio.desktop \ +me.hyliu.fluentreader \ +io.github.hmlendea.geforcenow-electron \ +org.onlyoffice.desktopeditors \ +org.jdownloader.JDownloader \ +com.github.PintaProject.Pinta \ +com.valvesoftware.Steam \ +com.stremio.Stremio \ +de.haeckerfelix.Shortwave \ +com.github.marinm.songrec \ +io.github.hakandundar34coding.mini-system-monitor \ +app.drey.Warp \ +com.rtosta.zapzap + +# Configuration du profil dconf de l'utilisateur pour synchroniser les paramètres via un fichier texte +mkdir -p /etc/dconf/profile +cp $builddir/dconf/user /etc/dconf/profile/user + +# Mise à jour du répertoire /home de l'utilisateur principal sudo à l'origine de l'installation +mkdir -p /home/$username/.config/autostart +cp $builddir/autostart/* /home/$username/.config/autostart/ +# Décommenter la ligne ci-dessous si vous avez besoin d'appliquer une commande runonce +#cp $builddir/runonce/* /home/$username/.config/autostart/ +mkdir -p /home/$username/.config/dconf +cp $builddir/dconf/user.txt /home/$username/.config/dconf/ +mkdir -p /home/$username/.config/mate/panel2.d/default/launchers +cp $builddir/launchers/* /home/$username/.config/mate/panel2.d/default/launchers/ +mkdir -p /home/$username/.config/package-update-indicator +cp $builddir/package-update-indicator/package-update-indicator.conf /home/$username/.config/package-update-indicator/ +mkdir -p /home/$username/.config/variety +cp $builddir/variety/* /home/$username/.config/variety/ +mkdir -p /home/$username/.shutter/profiles +cp $builddir/shutter/* /home/$username/.shutter/profiles/ +mkdir -p /home/$username/.themes +unzip $builddir/themes.zip -d /home/$username/.themes/ + +# Polybar pour l'utilisateur principal sudo à l'origine de l'installation (a voir dans le temps pour l'utilisateur lambda) +mkdir -p /home/$username/.config/polybar +cp $builddir/polybar/config.ini /home/$username/.config/polybar/ +cp $builddir/polybar/launch.sh /home/$username/.config/polybar/ +cp $builddir/polybar/polybar.desktop /home/$username/.config/autostart/ +chmod +x /home/$username/.config/polybar/launch.sh + +# Application du droit de propriété pour l'utilisateur principal sudo +chown -R $username:$username /home/$username/.config/ +chown -R $username:$username /home/$username/.shutter/ +chown -R $username:$username /home/$username/.themes/ + +# Mise à jour du répertoire /home pour les nouveaux utilisateurs via /etc/skel (Skeleton) +mkdir -p /etc/skel/.config/autostart +cp $builddir/autostart/* /etc/skel/.config/autostart/ +mkdir -p /etc/skel/.config/dconf +cp $builddir/dconf/user.txt /etc/skel/.config/dconf/ +mkdir -p /etc/skel/.config/mate/panel2.d/default/launchers +cp $builddir/launchers/* /etc/skel/.config/mate/panel2.d/default/launchers/ +mkdir -p /etc/skel/.config/package-update-indicator +cp $builddir/package-update-indicator/package-update-indicator.conf /etc/skel/.config/package-update-indicator/ +mkdir -p /etc/skel/.config/variety +cp $builddir/variety/* /etc/skel/.config/variety/ +mkdir -p /etc/skel/.shutter/profiles +cp $builddir/shutter/* /etc/skel/.shutter/profiles/ +mkdir -p /etc/skel/.themes +unzip $builddir/themes.zip -d /etc/skel/.themes/ + +# Suppression des sources d'installation du script +rm -r $builddir +rm -r /tmp/wibian/ + +# Nettoyage des paquets inutiles du système +apt autoremove + +# Activation de la gestion des interfaces dans NetworkManager +sed -i 's/false/true/g' /etc/NetworkManager/NetworkManager.conf +sed -i '9,$d' /etc/network/interfaces + +# Message de fin +echo "Bisous" | figlet -f big +echo -ne "\n" + +# Décompte avant redémarrage +i=10 +while [ $i -ge 0 ]; do printf "Redémarrage dans $i \r"; sleep 1; ((i--)); done + +# redémarrage du système +reboot now