Inviare mail da console con Mutt

Di vari client di posta disponibili per console, Mutt è senza dubbio uno dei più completi.
Nel caso in cui si voglia usare questo programma al solo fine di spedire mail da console, ad esempio per notificare un evento tramite uno script, la configurazione da inserire è molto semplice.
Innanzitutto editare il file di configurazione con:

nano .muttrc

quindi inserire quanto segue:

set realname="Mittente"
set from="mittente@azienda.it"
set use_from=yes
set smtp_url="smtp://server_smtp.it"

A questo punto per mandare una mail basta usare il comando:

echo "Test" | mutt -s "Titolo" destinatario@azienda.it

oppure:

mutt -s "Titolo" destinatario@azienda.it < /percorso/file.txt

Tener traccia dei pacchetti installati

Strumenti per tener traccia delle variazioni di pacchetti presenti nel sistema ce ne sono molti. Si può consultare il file di log di pacman (cosa decisamente poco pratica), oppure lanciare ogni tanto yaourt –stats per vedere se ci sono pacchetti non utilizzati.
Questi metodi però non permettono di capire cosa in effetti sia variato a distanza di tempo nel sistema, quindi una soluzione semplice e veloce a quest’esigenza potrebbe essere il seguente script:

#!/bin/bash
new_file=tracepkg_$(hostname)_$(date +%F_%H-%M-%S).log
if [ $1 = ]
then
	last_file=$(ls -t -1 *.log 2> /dev/null | head -n1 2> /dev/null)
else
	last_file=$1
	echo "1"
fi
pacman -Qqes > $new_file
echo ""
if [ $last_file ]
then
	changed=$(diff -q $last_file $new_file)
	if [ "$changed" ]
	then
		diff -y $last_file $new_file
		echo ""
		echo -n "Changed: "
		diff -y --suppress-common-lines $last_file $new_file | wc -l
	else
		echo "Nothing has changed."
		rm $new_file
	fi
	echo ""
	echo "Column1: $last_file"
	echo "Column2: $new_file"
else
	echo "Nothing to compare."
fi
echo ""

Crea una lista dei pacchetti installati e la salva in un file. All’esecuzione successiva compara la lista creata in precedenza, con quella attualmente presente, e ne notifica le eventuali differenze.
Nel caso in cui si specifichi un file come opzione, lo script lo utilizzerà per il confronto con la lista attuale.

Disabilitare wrap in xfce4-terminal

Editare il file .bashrc ed aggiungere la seguente linea:

shopt -s checkwinsize

Notifica aggiornamenti Archlinux

In Archlinux la notifica degli aggiornamenti è gestita prevalentemente via terminale, qualora si volesse notificare gli aggiornamenti con notifyd, basta creare uno script e farlo eseguire da cron ogni ora.

Per prima cosa da root creare il seguente script /usr/bin/updates-notification

#!/bin/bash
pkg_updates=$(package-query -QAu | wc -l)
pkg_notified=$(cat /tmp/updates-notification.tmp)
echo $pkg_updates > /tmp/updates-notification.tmp
if [[ pkg_updates -gt 0 && pkg_updates -gt pkg_notified ]]
then
	notify-send --expire-time=300000 --icon=/usr/share/icons/elementary/apps/128/system-software-update.svg "$(echo $pkg_updates) updates available:" "$(package-query -QAuf "%s %n %l > %V" | sort)"
fi

utilizza il comando notify-send per far apparire una popup di notifica visibile per 5 minuti, popup che verrà riproposta solo nel caso di ulteriori aggiornamenti, almeno fino al riavvio successivo.
NB: Nel comando package-query il parametro %s è racchiuso tra due tag “i”, mentre il parametro %n tra due tag “b”.

A questo punto bisogna rendere eseguibile lo script con:

chmod +x /usr/bin/updates-notification

Infine sempre da root usare il comando:

export EDITOR=nano

per impostare nano come editor di cron, e quindi digitare:

crontab -e

ed inserire quanto segue:

@hourly export DISPLAY=:0.0 ; yaourt -Sy ; su utente -c /usr/bin/updates-notification

NB: Sostituire “utente” con il nome dell’utente a cui si vuole notificare gli aggiornamenti.

Regolazione prestazioni su schede Nvidia

Inserire in xorg.conf le seguenti opzioni:

Batteria > massimo risparmio energetico.
Corrente > massime prestazioni.

"PowerMizerEnable=0x1; PerfLevelSrc=0x2222; PowerMizerDefault=0x3; PowerMizerDefaultAC=0x1"

Batteria > massimo risparmio energetico.
Corrente > prestazioni adattive.

"PowerMizerEnable=0x1; PerfLevelSrc=0x2233; PowerMizerDefault=0x3"

Batteria > prestazioni adattive.
Corrente > massime prestazioni.

"PowerMizerEnable=0x1; PerfLevelSrc=0x3322; PowerMizerDefaultAC=0x1"

Batteria > prestazioni adattive.
Corrente > prestazioni adattive.

"PowerMizerEnable=0x1; PerfLevelSrc=0x3333"