xscreensaver tem uma opção -watch
:
-watch Prints a line each time the screensaver changes state: when the screen blanks, locks, unblanks, or when the running hack is changed. This option never returns; it is intended for use by shell scripts that want to react to the screensaver in some way.1
O estado UNBLANK
é o que você está procurando. O manual inclui um script de exemplo usando essas opções.
1. link