#!/bin/bash set -e set -u FLAGFILE="$HOME/.screensaver-pause.flag" usage() { echo "$0 []" } while getopts "h" OPTION; do case "$OPTION" in h) usage exit 0 ;; *) usage >&2 exit 1 esac done shift $(($OPTIND - 1)) if [ "$#" -gt 1 ]; then usage >&2 exit 1 elif [ "$#" -eq 1 ]; then timeout="$1" else timeout=60 fi touch -d "+$timeout minutes" "$FLAGFILE" ( while find "$FLAGFILE" -mmin -0 2>/dev/null | grep -q .; do qdbus org.freedesktop.ScreenSaver /ScreenSaver SimulateUserActivity >/dev/null sleep 30 done rm -f "$FLAGFILE" ) & disown