Я хочу проверить внутри скрипта bash, как долго пользователь X-сеанса простаивал.
Пользователь сам не должен использовать bash, а просто X. Если пользователь просто переместите мышь, например, хороший ответ будет «бездействовать на 0 секунд». Если он не коснулся компьютера через 5 минут, хороший ответ был бы «бездействующим на 300 секунд»
. Причина, по которой немедленно не использовать xautolock, - это реализовать какое-то сложное поведение. Например, если пользователь простаивает в течение 10 минут, попробуйте приостановить, если он простаивает более 5 минут, отключается (я знаю, что это звучит странно, но приостановление не всегда работает здесь ...)
Ответ отсюда:
В bash
w | tr -s " " | cut -d" " -f1,5 | tail -n+3
дает вам пару имени пользователя / idletime для каждой оболочки. Таким образом, вы можете получить простую информацию через команду w