TTY[1-6]: Lock screen after delay (like a screensaver)
When using the virtual terminals on TTY 1-6 [*], it's sometimes easy to forget to log out: The screen goes blank after a while, but I'm still logged in - no password required, anyone can use my account. (Or I switch to another TTY, and forget the other one...)
I'd like to have screensaver-like functionality that locks the terminal after 3 minutes, and then requires a password. How do I set this up?
[*] With TTY 1-6, I mean CTRLALTF1 - CTRLALTF6 (no X Server)
I know this is old, but I found you on google searching for the same question.
If you’re using bash, it’s no problem. Just use the environment-variable 'TMOUT' which is used by bash for a auto-logout (logout! not lock) in the given seconds.
You can just type ''TMOUT=5'' into any bash an see, what happens.
For configuration in my bashrc I’m using
# autologout on tty1-6 after 30 minutes if [[ $(tty) =~ /dev\/tty[1-6] ]]; then TMOUT=1800; fi
so I don’t get logged out on a terminal-emulator which is normally on /dev/pty/# and already get locked by my screensaver as part of my desktop
Implementing a screensaver that way for the TTYs is hard, as you cannot query the X server for the idle time.
If you discipline yourself, you can use the vlock
command to explicitly lock a terminal.
A workaround for the timeout approach would be to ssh to localhost and let the ssh connection timeout take care of the rest. The timeout is specified under LoginGraceTime
in /etc/ssh/sshd_config
and is 120 seconds by default.
If you run exec ssh localhost
, you would be automatically logged out when the ssh connection times out. To keep your programs running past the timeout, you could run them via screen
.