Puedo ofrecer una solución a esto
No importa la configuración en la GUI, puede bloquear su pantalla y enviar sus pantallas al modo de espera a través de la línea de comando
Para bloquear tu pantalla puedes usar
gnome-screensaver-command -l
o (si no usa gnome3)
xdg-screensaver lock
y para apagar sus monitores (en espera) podría usar
xset dpms force off
Ahora, dado que no desea hacer esto manualmente, pero después de un par de minutos de inactividad, necesitamos averiguar cuánto tiempo ha estado inactivo. Esto se puede hacer conxprintidle
sudo apt-get install xprintidle
xprintidle
devolverá milisegundos de (xserver) tiempo de inactividad
Ahora, combinemos esto en un script (*). Use su editor favorito para copiar / pegar lo siguiente, modificando el IDLE_TIME
que desee
nano /home/yourusername/idle_stby_lock_screen.sh
#!/bin/sh
# Wanted trigger timeout in milliseconds.
IDLE_TIME=$((5*60*1000)) # replace the '5' with how many minutes you'd like
# Sequence to execute when timeout triggers.
trigger_cmd() {
echo "Triggered action $(date)"
}
sleep_time=$IDLE_TIME
triggered=false
while sleep $(((sleep_time+999)/1000)); do
idle=$(xprintidle)
if [ $idle -ge $IDLE_TIME ]; then
if ! $triggered; then
gnome-screensaver-command -l
export DISPLAY=:0; xset dpms force off
triggered=true
sleep_time=$IDLE_TIME
fi
else
triggered=false
# Give 150 ms buffer to avoid frantic loops shortly before triggers.
sleep_time=$((IDLE_TIME-idle+150))
fi
done
Luego hazlo ejecutable con
chmod +x /home/yourusername/idle_stby_lock_screen.sh
Puedes probarlo en la línea de comandos
/home/yourusername/idle_stby_lock_screen.sh
si está contento con él, puede agregarlo al inicio de su Ubuntu, como se describe en estas respuestas aquí o con la aplicación "Inicio" en Ubuntu, solo asegúrese de usar la ruta absoluta a su script.