При бездействии юзера например 60 секунд отображается окно с сообщением «ваш сеанс закончится через 30 секунд, либо нажмите ок или подвигайте мышью» если за эти 30 секунд не будет действий от юзера то браузер и сообщение закрывается , если есть действия от юзера сообщение закрывается и сеанс продолжается и так по кругу. Bash скрипт
idleloop() {
touch /tmp/.{,last_}input
cmd='stat --printf="%s"'
idletime=20
a=2
t=0
while true
do
timeout 1 xinput test-xi2 --root > /tmp/.input
if [[ `eval $cmd /tmp/.input` == `eval $cmd /tmp/.last_input` ]]
then
let t++ # increases $t by 1
else
t=0 # resets $t
fi
mv /tmp/.{,last_}input -f
if [ $t -ge $idletime ] && [[ $a == "2" ]]
then
notify-send "через 20 секунд сессия закончится"; sleep 10
killall firefox
a=1
fi
if [ $t -lt $idletime ] && [[ $a == "1" ]]
then
echo "user has come back from idle"
a=2
fi
done
}
idleloop
суть не могу вывести сообщение и если человек не активен чтобы убивался процесс, а если активен после сообщения этого то оно убиралась и опять пока не будет бездействия.