From 916b3c28364ecfa7a2d4ede6755286944021d5fc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Krist=C3=B3f=20T=C3=B3th?= Date: Mon, 17 Aug 2020 12:28:52 +0200 Subject: [PATCH] Initial commit. Add poc hack script --- proof-of-concept.sh | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100755 proof-of-concept.sh diff --git a/proof-of-concept.sh b/proof-of-concept.sh new file mode 100755 index 0000000..7072fce --- /dev/null +++ b/proof-of-concept.sh @@ -0,0 +1,34 @@ +#!/bin/bash +set -euo pipefail +LOCK=/tmp/after-lock.lock +INITIAL_DELAY=3 +LOOP_DELAY=17 + +if ! mkdir "${LOCK}" &> /dev/null; then + exit 0 +fi +cleanup() { + rmdir "${LOCK}" +} +trap cleanup INT TERM EXIT + +screensaver_isactive() { + [[ $(qdbus org.kde.screensaver /ScreenSaver org.freedesktop.ScreenSaver.GetActive) = "true" ]] +} + +display_shouldsleep() { + if ! xset q | grep -q Monitor; then + return 0 + elif [[ "$(xset q | grep -oP '(?<=Monitor is )\w+')" = 'On' ]]; then + return 0 + fi + return 1 +} + +sleep "${INITIAL_DELAY}" +while screensaver_isactive; do + if display_shouldsleep; then + xset dpms force suspend + fi + sleep "${LOOP_DELAY}" +done