No OOTB component available for such use case, but should be easily achievable via JS.
One example can be handling events on form initialize and adding to the Timer based on the Events :
var timeoutID;
function setup() {
this.addEventListener("mousemove", resetTimer, false);
this.addEventListener("mousedown", resetTimer, false);
this.addEventListener("keypress", resetTimer, false);
this.addEventListener("DOMMouseScroll", resetTimer, false);
this.addEventListener("touchmove", resetTimer, false);
this.addEventListener("MSPointerMove", resetTimer, false);
startTimer();
}
setup();
function startTimer() {
// wait 10 seconds before calling goInactive
timeoutID = window.setTimeout(goInactive, 10000);
}
function resetTimer(e) {
window.clearTimeout(timeoutID);
goActive();
}
function goInactive() {
alert("you will be taken to home page");
//do something again
window.location.href = "http://localhost:4502/content/forms/af/test.html";
}
function goActive() {
// do something
startTimer();
}