Instale o xprintidle. Essa ferramenta fornece o tempo ocioso de um usuário.
sudo apt-get install xprintidle
Crie um script autoshutdown.sh que verifique o tempo ocioso e instrua o computador a desligar se ficar ocioso por 30 minutos.
idle=$(xprintidle)
if [ $idle -gt 1800000 ]; then
shutdown -h now
fi
Faça um cronjob para isso que verifica de tempos em tempos se o sistema estiver ocioso por muito tempo e se ele estiver ocioso por mais de 30 minutos ele será encerrado. Note que o cronjob deve ser feito para o usuário root.