After recent update, I found that vlock is merged into kbd. However, this version of vlock seems to work only when invoked on a virtual console, meaning that I have to switch to a virtual console and invoke vlock. Otherwise, it fails:

$ vlock -a
This tty (pts/0) is not a virtual console.
The entire console display cannot be locked.

Is there any alternative to vlock that disallows switching virtual consoles when locked?

+1 on slock. It's really simple and does what it needs to do. I like it even better now, because it turns the screen a different color when you start typing the password. Before, I had no idea whether I had started or not; and with a faulty keyboard, this had been a huge dealbreaker.