Когда-то давно я искал в интернетах способ поймать момент, когда я блокирую экран. То есть мне нужно было, чтобы это делал скрипт. Задача такая:
Когда я отхожу от компьютера и блокирую экран, в системе должно меняться состояние некоторых приложений. Когда я возвращаюсь, состояние должно восстанавливаться.
Так, вроде, понятно. Состояние приложений — это раскладка клавиатуры, статус в джаббере, пауза в проигрывателе. Не найдя правильного способа поймать это событие, я написал bash-скрипт, подарив ему убедительное название locker. Этот скрипт я повесил на сочетание клавиш, которое ранее блокировало экран. Внутри скрипта есть команда, которая блокирует экран по d-bus (дёргает dbus-send и qdbus вперемешку), так что внешне ничего не изменилось: нажимаешь Ctrl+Alt+L — экран блокируется. Только дополнительно теперь ещё и музыка останавливается и psi меняет статус на away.
Ок, с этим моментом разобрались. А как обратно? Теперь я захотел, чтобы когда я вернулся, psi возвращалась в статус "online" и музыка начинала играть снова. Вот тут я и узнал много нового и интересного.