В Интернете нашёл следующее решение (может кому-нибудь пригодится):
1) Создать скрипт (например, lock-screen.sh), перехватывающий события блокировки/разблокировки экрана с помощью программы dbus-monitor.
Код:
#!/bin/sh
dbus-monitor --session "type='signal',interface='org.freedesktop.ScreenSaver',path='/org/freedesktop/ScreenSaver'" |
while read x; do
case "$x" in
*"boolean true"*)
[команды_для_исполнения_при_включении_блокировки_экрана]
;;
*"boolean false"*)
[команды_для_исполнения_при_снятии_блокировки_экрана]
;;
esac
done
2) Сделать скрипт исполняемым.
Код:
chmod ug+x /[путь_к_файлу]/lock-screen.sh
chgrp [основная_группа_пользователя] /[путь_к_файлу]/lock-screen.sh
3) Добавить созданный скрипт в автозагрузку пользователя (Пуск -> Панель управления -> Система -> Автозапуск).
Код:
/bin/sh /[путь_к_файлу]/lock-screen.sh &
Примечание. С целью отладки Вы можете запустить программу dbus-monitor в терминале от имени обычного пользователя для просмотра всех сигналов, идущих через dbus.