Motd personalisé en lancement de terminaux

Pour faire joli, voici un lancement de fenêtre de terminal.
image

Il utilise neofetch et chafa à installer avec un simple

apt  install chafa neofetch

dans le fichier ~/.config/neofetch/config.conf, il suffit de déclarer les options:

image_backend="chafa"
image_source="/home/zargos/Images/Fonds/devil.jpg"

Pour la partie texte c’est à volonté (pour lesquels il faudra aller modifier les paramètres corresponds dans le reste du fichier de config):

print_info() {
    prin "Hostname......: "$(hostname -f)
    info underline
    info "OS............" distro
    info "Host.........." model
    info "Kernel........" kernel
    info "Uptime........" uptime
    info "Packages......" packages
    info "Shell........." shell
    info "Resolution...." resolution
    info "DE............" de
    info "WM............" wm
    info "WM Theme......" wm_theme
    info "Theme........." theme
    info "Icons........." icons
    info "Terminal......" term
    info "Terminal Font." term_font
    info underline
    info "CPU..........." cpu
    info "GPU..........." gpu
    info "GPU Driver...." gpu_driver  # Linux/macOS only
    info underline
    info "Memory........" memory

    info "CPU Usage....." cpu_usage
    info "Disk.........." disk
    info underline
    info "Battery......." battery
    info "Font.........." font
    info "Local IP......" local_ip
    info "Public IP....." public_ip
    info underline
    info "Users........." users
    info underline
    info "Locale" locale  # This only works on glibc systems.

    info cols
}

Et ajouter à la fin de .bashrc:

/usr/bin/neofetch

Sachant que j’ai éffacé le fichier /etc/motd
Et mis dans /etc/update-motd.c/00-header

#!/bin/bash
NEOFETCH=/etc/neofetch
MOTD=$NEOFETCH/motd.txt
# Generate neofetch motd
neofetch --config $NEOFETCH/neofetch.conf > $MOTD
echo 
# Extract Disk values
occurences=`cat -A $MOTD | grep -oE "\(\/.*\)\^\[\[0m\^\[\[0m" | sed 's,\^\[\[0m\^\[\[0m,,g'`
# Calculate max length of values
max=0
for i in $occurences
do
	if [ ${#i} -gt $max ]; then
		max=${#i}
	fi
done
echo "max=$max"

for i in $occurences
do 
	len=${#i}
	nb=$(( max - len ))
	if [ $nb -gt 0 ]; then 
		ds=`printf '.%.0s' $(seq 1 $nb)`
	else 
		ds=''
	fi;
	out=`echo "$i$ds"`
	sed -i -e "s|$i|$out|" $MOTD
done
cat $MOTD
rm $MOTD
1 J'aime