Você pode fazer isso, mas não será simples. Primeiro você pode configurar um script que é executado quando o lightdm inicia a exibição. Como ele reinicia a exibição quando você faz logout, você deve escrever um pequeno script com um temporizador de 5 minutos que hiberna após um atraso de 5 minutos. Você configuraria o lightdm.conf para executar este script editando o arquivo de configuração da seguinte forma:
display-setup-script=hibernate_delay.sh
Você poderia ter um segundo script que o lightdm executa ao iniciar uma sessão de usuário que cancelaria o cronômetro. Você define isso no lightdm.conf da seguinte forma:
session-setup-script=cancel_hibernate.sh
Quanto ao conteúdo desses scripts, eles podem ser simples. hibernate_delay.sh seria algo assim, embora você precise fazer as partes depois da linha "touch" em um segundo script que foi executado em segundo plano:
#!/bin/sh
touch /tmp/hibernate_timer
sleep 300
if [ -f /tmp/hibernate_timer ];
then
echo "5 minutes is up, hibernating"
pmi action hibernate
else
echo "hibernation cancelled"
fi
O script cancel_hibernate.sh simplesmente removeria o arquivo hibernate_timer para que ele não hibernasse:
#!/bin/sh
rm -f /tmp/hibernate_timer
Agora a teoria aqui na minha resposta é boa, mas eu não tentei esses scripts e como eu mencionei acima, o script hibernate_delay.sh precisa separar um segundo script para que o sono não bloqueie. Tenho certeza de que também há uma maneira melhor de fazer isso (usando o comando at vale a pena dar uma olhada), mas os pontos de conexão para lightdm seriam os mesmos.
Boa sorte!