wibian/install.sh
2023-09-02 10:39:05 +00:00

177 lines
7.5 KiB
Bash

#!/bin/bash
# Résolution écran
xrandr -s 1920x1080_60.00
# 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)
# 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
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
# swapiness
echo "vm.swappiness=1" >> /etc/sysctl.conf
echo "Désactivation et vidage de la mémoire swap - Veuillez patentier..."
swapoff -a
echo "Activation de la mémoire swap avec prise en compte de la valeur 1 "
swapon -a
sleep 3
# Désinstallation complète de LibreOffice
apt remove --purge libreoffice* -y
apt autoremove -y
# Modification pour la branche unstable alias "Sid"
cp /etc/apt/sources.list /etc/apt/sources.list.bck
cp sources.list /etc/apt/sources.list
# Update packages list and update system
apt update
apt upgrade -y
# Install nala
apt install nala -y
nala fetch --auto -y
# Installation et configuration du logiciel des gestion automatique des mises à jour
# Commande pour tester le bon fonctionnement : unattended-upgrades --dry-run --debug
nala install unattended-upgrades -y
cp 50unattended-upgrades /etc/apt/apt.conf.d/50unattended-upgrades
cp /usr/share/unattended-upgrades/20auto-upgrades /etc/apt/apt.conf.d/
sed -i 's/InhibitDelayMaxSec=30/InhibitDelayMaxSec=1800/g' /usr/lib/systemd/logind.conf.d/unattended-upgrades-logind-maxdelay.conf
# Installation des paquets
nala install caja-share caja-nextcloud celluloid cheese foliate gparted hugin jami kazam lightdm-settings mate-desktop-environment-extras metadata-cleaner numlockx peek printer-driver-all qshutdown redshift-gtk shutter stacer system-config-printer tilix tlp variety xscreensaver-gl -y
# Installation des paquets utilitaires
nala install curl flatpak figlet htop libnotify-bin nmap speedtest-cli stress s-tui swaks testdisk tldr vim wmctrl xdotool -y
# Désinstallation des paquets non désirés
nala remove fortunes-min -y
# 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 webapp-manager_1.* | tail -1)
sudo nala install /tmp/wibian/$release -y
# Logiciel hors dépôts : PVE VDI Client
nala install python3-pip python3-proxmoxer python3-tk virt-viewer git -y
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
# Logiciel hors dépots : Deskreen
package="https://(.*)deskreen_(.*).deb"
wget $(curl -L -s https://api.github.com/repos/pavlobu/deskreen/releases/latest | grep -o -E $package) -P /tmp/wibian/
nala install /tmp/wibian/deskreen_*.deb -y
# Logiciel hors dépots : Youtube music
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/
nala install /tmp/wibian/youtube-music_*.deb -y
# Installation des thèmes wibian-light et wibian-dark
nala install greybird-gtk-theme papirus-icon-theme -y
mkdir -p /home/$username/.themes
unzip $builddir/themes.zip -d /home/$username/.themes/
chown -R $username:$username /home/$username/.themes/
# Envoi du message de notification
notify-send -i $builddir/icones/sympatech_logo_bleu.png "Information" "Le script d'installation touche bientôt à sa fin" -t 0
notify-send -i $builddir/icones/sympatech_logo_rouge.png "Attention" "Redémarrage imminent après l'installation des paquets flatpak" -t 0
# Flatpak (reboot nécéssaire)
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
flatpak install flathub com.usebottles.bottles io.github.giantpinkrobots.flatsweep io.freetubeapp.FreeTube com.github.geigi.cozy io.crow_translate.CrowTranslate com.discordapp.Discord com.jgraph.drawio.desktop com.github.tchx84.Flatseal me.hyliu.fluentreader io.github.hmlendea.geforcenow-electron org.onlyoffice.desktopeditors org.jdownloader.JDownloader io.gitlab.librewolf-community org.gnome.World.PikaBackup com.github.PintaProject.Pinta com.stremio.Stremio de.haeckerfelix.Shortwave com.github.marinm.songrec io.github.hakandundar34coding.mini-system-monitor com.github.rajsolai.textsnatcher app.drey.Warp -y
# Scripts exécutés au premier redémarrage dans le dossier caché .runonce de l'utilisateur
mkdir -p /home/$username/.runonce
cp $builddir/runonce/* /home/$username/.runonce/
chown -R $username:$username /home/$username/.runonce/
chmod +x /home/$username/.runonce/*.sh
# Edition du fichier crontab pour déterminer les tâches à éxcuter au démarrage.
cp /etc/crontab /etc/crontab.bck
sed -i '$a@reboot root sleep 15; bash /home/'"$username"'/.runonce/reboot.sh' /etc/crontab
# Copie des lanceurs d'applications personnalisés dans le tableau de bord de Mate
mkdir -p /home/$username/.config/mate/panel2.d/default/launchers
cp $builddir/launchers/* /home/$username/.config/mate/panel2.d/default/launchers/
chown -R $username:$username /home/$username/.config/mate/
# 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
rm /home/$username/.config/dconf/user
cp $builddir/dconf/user.txt /home/$username/.config/dconf/user.txt
# Restauration des paramètres de Variety
mkdir -p /home/$username/.config/variety
cp $builddir/variety/* /home/$username/.config/variety/
chown -R $username:$username /home/$username/.config/variety/
# Restauration des pramètres de Shutter
mkdir -p /home/$username/.shutter/profiles
cp $builddir/shutter/* /home/$username/.shutter/profiles/
chown -R $username:$username /home/$username/.shutter/
nohup shutter &>/dev/null &
sleep 10
wmctrl -c "Shutter"
# Lancement des commandes auto-éxecutées après le login utilisateur : Crow Translate, Shutter, Variety, Permissions Flatpak
mkdir -p /home/$username/.config/autostart
cp $builddir/autostart/* /home/$username/.config/autostart/
chown -R $username:$username /home/$username/.config/autostart/
# Mise à jour du répertoire /home pour les nouveaux utilisateurs via /etc/skel (Skeleton)
unzip $builddir/themes.zip -d /etc/skel/.themes/
mkdir -p /etc/skel/.runonce
cp $builddir/runonce/flatpak.sh /etc/skel/.runonce/
chmod +x /etc/skel/.runonce/flatpak.sh
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/dconf
cp $builddir/dconf/user.txt /etc/skel/.config/dconf/user.txt
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/.config/autostart
cp $builddir/autostart/* /etc/skel/.config/autostart/
# Suppression des sources d'installation du script
rm -r $builddir
rm -r /tmp/wibian/
# 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