Script

picture

Système ciblé: Xubuntu

Auteur: Adrien.V

Langage: Bash

Date de mise à jour: 07/02/2023

Pourquoi ne pas créer une distribution ?

Nous l'avons fait par le passé, elle portait le doux nom de Calux. Une époque où certains pilotes Wifi n'étaient pas encore intégrés au noyau, ou les pilotes graphiques libres se trouvaient être très peu performants voir inexistants. De nos jours ces problèmes sont reglés sur la plupart des distributions.

Face à cela, la configuration que nous proposons est essentiellement esthétique et fonctionelle c'est à dire qu'elle facilite l'usage. Il est donc à notre humble avis inutile de créer une nouvelle distribution.

La création d'une distribution s'avère contre-productive. Obligation de générer des isos avec les dernières MAJ de sécurité, mise à disposition de ces isos sur des mirroirs, temps de debug important, toute modification même légère se doit d'être intégrée à l'image et de resuivre le même chemin (debug => génération => mise à disposition), une maintenabilité nécessaire qui devient vite chronophage.

Bash semble être la meilleure solution car nous pouvons automatiser simplement et efficacement, commenter, expliquer chaque ligne du script pour transmettre à nos bénévoles les méthodes utilisées.

Téléchargement

picture

Taille: 34.2 Mo

Format: tar.gz



Explication du script

Comme vous pouvez le constater le script peut paraître incohérent puisque plusieurs méthodes sont utilisées pour effectuer des tâches similaires. La raison de cette curiosité est avant tout dans un but de formation des bénévoles qui doivent maitriser plusieurs méthodes.

		
#!/bin/bash
div>
#Coloration syntaxique
ROUGE='\033[0;31m'
#Rouge
VERT='\033[0;32m'
#Vert
RIEN='\033[0m'
#Aucune couleur
BLINK='\033[5m'
#Clignotement
E_NONROOT=67 UID_ROOT=0
#Vérification du root
if [ "$UID" -ne "$UID_ROOT" ] then echo "Vous devez être root pour exécuter ce script." exit $E_NONROOT fi
#Introduction
printf "${VERT}Bienvenue dans ce script de configuration post installation.${RIEN}\n" echo "--------------------------------"
#Mises à jour et ajouts des logiciels
notify-send -t 30 -i notification-message-IM "Mise à jour et ajouts des logiciels" for (( ; ; )); do ping -q -c 1 httpss://www.calis-asso.org/ >/dev/null 2>&1
#Test de la connexion internet avant installation
if [ $? -eq 0 ]; then printf "${ROUGE}${BLINK}Mise à jour de la liste des dépôts${RIEN}\n" sudo apt update printf "${ROUGE}${BLINK}Mise à jour des paquets${RIEN}\n" sudo apt upgrade -y sudo apt install neofetch wget git unzip vim pm-utils htop cherrytree lazpaint-qt5 simple-scan catfish galculator gcompris-qt inkscape gimp gimp-data-extras gimp-gmic blender gnucash keepassxc pdfmod audacious kdenlive vlc vlc-l10n unrar bleachbit redshift kdeconnect gajim deluge geany geany-plugins minetest gbrainy break fi done
# Installer synaptic si celui-ci n'est pas trouvé
if ! [ -x "$(command -v synaptic)" ]; then
#Vérification du chemin de synaptic
echo -e "Installation de wget \n\n" sudo apt-get install synaptic -y
#Installation de synaptic
echo -e "\n\n" fi
#Introduction à la configuration de XFCE
echo "------------------------------------------" echo "-------- Configuration de XFCE -----------" echo "------------------------------------------" notify-send -t 30 -i notification-message-IM "Configuration de XFCE en cours ..."
#Affichage de la notification
#Copie des différents éléments
cp /xfce/xfce4-panel.xml ~/.config/xfce4/xfconf/xfce-perchannel-xml/
#Ajout des lanceurs au panel
cp /xfce/whiskermenu.rc ~/.config/xfce4/panel/
#Changement de la taille des icones du whisker-menu
cp /images/calis-logo-white.svg /usr/share/pixmaps/
#Ajout du logo calis SVG
cp /images/calis-logo-white-32.png /usr/share/pixmaps/
#Ajout du logo calis PNG 32px
cp /images/calis-background.png /usr/share/backgrounds/xfce/
#Ajout du fond d'écran
cp /xfce/DDS XFCE Support/dds_support.sh ~/Téléchargements/
# copie du script du support DDS
#Configuration via xconf
xfconf-query -c xfce4-power-manager -p /xfce4-power-manager/lock-screen-suspend-hibernate -s false
#Desactiver la mise en veille et le verrouillage écran
xfconf-query -c xfce4-power-manager -p /xfce4-power-manager/dpms-enabled -s false
#Desactiver la mise en veille et le verrouillage écran
xfconf-query -c xfce4-power-manager -p /xfce4-power-manager/logind-handle-lid-switch -n -t bool -s false
#Fix du bug de l'écran laptop qui ne s'eteint pas lorsque l'écran est rabbatu
xfconf-query -c xfce4-screensaver -p /lock/enabled -s false
#Desactiver la mise en veille et le verrouillage écran
xfconf-query -c xfce4-panel -p /panels/panel-0/size -s 35
#Changement de la taille du panel
xfconf-query -c xfce4-desktop -p /desktop-icons/icon-size -s 64
#Taille des icones du bureau
xfconf-query -c xfce4-desktop -p /backdrop/screen0/monitor0/image-path -s /usr/share/backgrounds/xfce/calis-background.png
#Modification du fond d'écran
xfconf-query -c xfce4-desktop -p /backdrop/screen0/monitorDisplayPort-0/workspace0/last-image -s /usr/share/backgrounds/xfce/calis-background.png
#Modification du fond d'écran
xfconf-query -c xfwm4 -p /general/theme -s Adwaita-dark
#Modification du thème
xfconf-query -c xsettings -p /Net/ThemeName -s Adwaita-dark
#Modification du thème
xfconf-query -c xsettings -p /Net/IconThemeName -s Adwaita
#Modification du thème d'icônes
xfconf-query -c xsettings -p /Gtk/FontName -s Noto Sans 12
#Modification de la police
xfconf-query -c xsettings -p /Gtk/MonospaceFontName Monospace 14
#Modification de la police
xfconf-query -c xfce4-settings-manager -p /last/window-width -s 800
#Modification de la taille du gestionnaire de paramètres au lancement
xfconf-query -c xfce4-settings-manager -p /last/window-height -s 610
#Modification de la taille du gestionnaire de paramètres au lancement
xfconf-query -c thunar -p /last-separator-position -s 250
#Modification de la taille du gestionnaire de fichiers
xfconf-query -c thunar -p /last-window-width -s 900
#Modification de la taille du gestionnaire de fichiers
xfconf-query -c thunar -p /last-window-height -s 600
#Modification de la taille du gestionnaire de fichiers
xfconf-query --channel xfwm4 -p /general/popup_opacity -s 92
#Rendre les tooltips légèrement opaques afin de distinguer ce qui se trouve en dessous
xfconf-query --channel thunar --property /misc-compact-view-max-chars --create --type int --set 0
#Rétablir la vue complète des noms tronqués
#Changer le comportement de XFCE Screenshooter
cd ~/Images mkdir Screenshots cd ~/.config/xfce4/ echo -e "app=env\nlast_user=calis\nlast_extension=jpg\nscreenshot_dir=file:/home/calis/Screenshots\nenable_imgur_upload=false\naction=1\ndelay=0\nregion=3\nshow_mouse=1\nshow_border=1\n" > xfce4-screenshooter # Inscription des paramètres dans le fichier config xfce4-screenshooter
#Changer l'icône du menu whisker
cd ~/.config/gtk-3.0/ vi gtk.css +1$'i\n.xfce4-panel #whiskermenu-button-icon {background: @launcher_bg url("/usr/share/pixmaps/calis-logo-white-32.png") center; }' +wq # Insertion du CSS xfce4-panel -r
#Redémarrer le xfce panel
#Creation du lanceur Calis
cd ~/.local/share/ mkdir applications cd applications touch calis.desktop echo "[Desktop Entry] Encoding=UTF-8 Name=Calis GenericName=Asso Comment=Site internet de l'association Calis Exec=exo-open --launch WebBrowser httpss://calis-asso.org Icon=/usr/share/pixmaps/calis-logo-white.svg Terminal=false Type=Application Categories=Calis;" >> calis.desktop chmod +x calis.desktop cp ~/.local/share/applications/calis.desktop ~/Bureau
#Ajout du raccourci pkill en pressant Ctrl + Suppr
cd ~/.config/xfce4/xfconf/xfce-perchannel-xml/ vi xfce4-keyboard-shortcuts.xml +59$'i\n ' +wq
#Configuration de Firefox
echo "------------------------------------------" echo "-------- Configuration de Firefox --------" echo "------------------------------------------" notify-send -t 30 -i notification-message-IM "Configuration de Firefox" firefox -silent -setDefaultBrowser
#Firefox comme navigateur par défaut
firefox -no-remote -ProfileManager --createprofile calis
#Créaton du nouveau profil firefox
cd ~/snap/firefox/common/.mozilla/firefox && PROFILCALIS=`basename *.calis`
#On stocke le nom du profil généré aléatoirement dans une variable
cd $PROFILCALIS rm -r *
#On supprime le contenu du repertoire
unzip /applications/firefox/profile.zip -d ~/snap/firefox/common/.mozilla/firefox/$PROFILCALIS
#Ajout du contenu du profil à firefox
firefox -no-remote -P calis
#Lancement de firefox avec le profil calis
#Controle parental par le fichier hosts
notify-send -t 30 -i notification-message-IM "Installation d'un controle parental par modification du fichier hosts" echo "-------------------------------------------" echo "-------- Controle parental - hosts --------" echo "-------------------------------------------" PS0='> ' LISTE=("[o] Oui" "[n] Non") select CHOIX in "${LISTE[@]}" ; do case $REPLY in 1|o) cd ~ wget httpss://raw.githubusercontent.com/StevenBlack/hosts/master/hosts
#Recuperation du fichier hosts avec wget
cp -av /etc/hosts /etc/hosts.bak.$(date -d "yesterday" '+%Y-%m-%d')
#Sauvegarde de l'ancien fichier hosts
mv hosts /etc/hosts
#Remplacement du fichier hosts
break ;; 2|n) echo "Entendu" break ;; esac done
#Support du DDS
notify-send "support du DDS" echo "-----------------------------------" echo "-------- Support du DDS -----------" echo "-----------------------------------" PS1='> ' LISTE=("[o] Oui" "[n] Non") select CHOIX in "${LISTE[@]}" ; do case $REPLY in 1|o) cd ~/Téléchargements/ chmod +x dds_support.sh ./dds_support.sh break ;; 2|n) echo "Entendu" break ;; esac done
#Config des logs
cd /etc/systemd/ sed -i -e "s/\#SystemMaxFileSize=/\#SystemMaxFileSize=100M/g" journald.conf
# limite du var/log pour gagner de l'espace disque
systemctl restart systemd-journald.service
# reboot du service
#Nettoyage
cd ~/Téléchargements/ rm dds_support.sh sudo apt autoremove history -c
#Redemarrage
xfce4-session-logout --reboot --fast