Вы здесь

как в bash скрипте отловить suspend/resume

пишу bash скрипт, выполняющийся в фоне. В числе прочего в нем есть цикл, регулярно производящий некие действия. Необходимо (в этом цикле или как-то иначе, например trap) поймать и обработать suspend/hibernate (опционально) и thaw/resume (обязательно).
В голову приходят только 2 мысли - это использовать sleep.d/ (что кажется в данном случае громоздким решением) или использовать тот факт, что suspend/resume занимает какое-то минимальное время (что, разумеется, жутко коряво)

Есть ли другие, более правильные способы?

ПС Есть ли способ получить timestamp последнего события от клавиатуры и мыши?

Вам не подойдёт? Наверняка, при поступлении сигналов "suspend/resume" О.С создаёт временные файлы.
Честно говоря, мне в "П.Л.К." более ничего не приходит :D