247 lines
9.2 KiB
Bash
247 lines
9.2 KiB
Bash
#!/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
|
|
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
|
|
|
|
# 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 composants du serveur graphique Xorg
|
|
sudo nala install -y \
|
|
xorg \
|
|
xbacklight \
|
|
xbindkeys \
|
|
xinput
|
|
|
|
# Installation de l'environnement de bureau MATE en mode core
|
|
sudo nala install mate-desktop-environment-core
|
|
|
|
# Installation du gestionnaire d'affichage
|
|
sudo nala install lightdm lightdm-gtk-greeter-settings
|
|
|
|
# Installation des paquets complémentaires pour MATE
|
|
sudo nala install -y \
|
|
atril \
|
|
blueman \
|
|
caja-admin
|
|
caja-mediainfo \
|
|
caja-nextcloud \
|
|
caja-share \
|
|
caja-eiciel
|
|
celluloid \
|
|
dconf-editor \
|
|
foliate \
|
|
cups \
|
|
engrampa \
|
|
eom \
|
|
gnome-system-tools \
|
|
gparted \
|
|
gtkhash \
|
|
kazam \
|
|
metadata-cleaner \
|
|
network-manager-gnome \
|
|
network-manager-openvpn \
|
|
mate-applet-brisk-menu \
|
|
mate-calc \
|
|
mate-control-center \
|
|
mate-power-manager \
|
|
mate-screensaver \
|
|
mate-system-monitor \
|
|
mate-tweak \
|
|
mate-user-guide \
|
|
mate-utils \
|
|
numlockx \
|
|
peek \
|
|
pluma \
|
|
qshutdown \
|
|
printer-driver-all \
|
|
picom \
|
|
redshift-gtk \
|
|
seahorse \
|
|
shutter \
|
|
stacer \
|
|
tilix \
|
|
variety \
|
|
simple-scan \
|
|
synaptic \
|
|
system-config-printer \
|
|
xscreensaver-gl \
|
|
|
|
# Activation des services fraichement installés
|
|
sudo systemctl enable cups
|
|
sudo systemctl enable bluetooth
|
|
sudo systemctl enable lightdm
|
|
|
|
# Installation des paquets utilitaires
|
|
nala install curl flatpak freerdp2-x11 figlet git htop libnotify-bin micro nmap net-tools speedtest-cli stress s-tui swaks testdisk tldr tlp whois wmctrl xdotool zram-tools -y
|
|
|
|
# Installation des logiciels en fonction du profil d'utilisation (décommenter selon le besoin)
|
|
# sudo nala install blender
|
|
# sudo nala install cheese
|
|
# sudo apt install -y geany geany-plugin-addons geany-plugin-git-changebar geany-plugin-overview geany-plugin-spellcheck geany-plugin-treebrowser geany-plugin-vimode
|
|
# sudo nala install gimp
|
|
# sudo nala install hugin
|
|
# sudo nala install kdenlive
|
|
# sudo nala install obs-studio
|
|
|
|
# Désinstallation des paquets non désirés
|
|
nala remove fortunes-min -y
|
|
|
|
# Approbation du dépot pour QOwnNotes
|
|
SIGNED_BY='/etc/apt/keyrings/qownnotes.gpg'
|
|
sudo mkdir -p "$(dirname "${SIGNED_BY}")"
|
|
curl --silent --show-error --location http://download.opensuse.org/repositories/home:/pbek:/QOwnNotes/Debian_12/Release.key | gpg --dearmor | sudo tee "${SIGNED_BY}" > /dev/null
|
|
sudo chmod u=rw,go=r "${SIGNED_BY}"
|
|
|
|
# Ajout du dépot et installation de QOwnNotes à partir de celui-ci
|
|
SIGNED_BY='/etc/apt/keyrings/qownnotes.gpg'
|
|
ARCHITECTURE="$(dpkg --print-architecture)"
|
|
echo "deb [arch=${ARCHITECTURE} signed-by=${SIGNED_BY}] http://download.opensuse.org/repositories/home:/pbek:/QOwnNotes/Debian_12/ /" | sudo tee /etc/apt/sources.list.d/qownnotes.list > /dev/null
|
|
sudo apt update
|
|
sudo apt install qownnotes
|
|
|
|
# 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)
|
|
sudo nala install $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 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
|