Mogę zaproponować obejście tego problemu
Nieważne ustawienia GUI, możesz zablokować ekran i przełączyć ekran w tryb gotowości za pomocą wiersza poleceń
Aby zablokować ekran, możesz użyć
gnome-screensaver-command -l
lub (jeśli nie używaj gnome3)
xdg-screensaver lock
i do wyłączenia monitorów (czuwania), których możesz użyć
xset dpms force off
Teraz, ponieważ nie chcesz tego robić ręcznie, ale po kilku minutach bezczynności musimy dowiedzieć się, jak długo byłeś bezczynny. Można to zrobić za pomocąxprintidle
sudo apt-get install xprintidle
xprintidle
zwróci milisekundy okresu czasu (xserver)
Teraz połączmy to w skrypt (*). Użyj ulubionego edytora, aby skopiować / wkleić następujące elementy, modyfikując je IDLE_TIME
według własnych upodobań
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
Następnie uczyń go wykonywalnym za pomocą
chmod +x /home/yourusername/idle_stby_lock_screen.sh
Możesz to przetestować w linii poleceń
/home/yourusername/idle_stby_lock_screen.sh
jeśli jesteś z niego zadowolony, możesz dodać go do uruchamiania Ubuntu, jak opisano w tych odpowiedziach tutaj lub za pomocą aplikacji „Startup” w Ubuntu - po prostu użyj bezwzględnej ścieżki do skryptu.