Simple screen locking tool for ratpoison based desktops
Run rplock to lock and blank all ratpoison screens.
Press some magic keys to restore everything to the way it was before
(or open another session and run rplock unlock from the same directory)
For locking, rplock first blanks all screen by going fullscreen and selecting
an empty window. Your layout is saved in a file called locked_layout.
The top keymap is then replaced with a new one, redirecting all alphanumeric keys
to the script for entering an unlock phrase, thereby making your normal bindings
temporarily inaccessible.
Input from these keys can then be used to enter an unlock phrase, confirmed by pressing enter. The screens are unlocked as soon as the same phrase is entered again and confirmed by pressing enter.
To just blank the screens for a short time, hit enter twice.
The rplock unlock command replaces the top keymap again, with your original one
and restores the previously saved screen layout.
Install rplock by running make install as root.
Add it to your ratpoison bindings and make sure it is executed from a known path, eg.
by running cd before starting ratpoison.
If you run into problems unlocking, change to another TTY by pressing Ctrl-Alt-F<1-6>
and log in. Run export DISPLAY=:0 to set the target X server and run the rplock unlock
command from the same folder the corresponding rplock command was run from.
Change back to the graphical TTY (usually tty7) which should be unlocked again.
rplock only makes ratpoison unusable, it does not prevent attackers
from eg. just killing the X server by changing to TTY1 and pressing Ctrl-C.
Some programs like to open popups and new windows, which will be brought to the
foreground even while the screen is locked, allowing an attacker to interact with
that window. This might be prevented by mapping all keys in the locktop keymap
to something, though that would still leave the mouse.
Some other measures you should take
- Always run
xinit || logout(eg. by setting it as an alias) if you start your X server manually. This works because forcibly quitting the X server makes it return nonzero. - Disable the Magic SysRq key combinations