#!/bin/bash checkSleep() { if timeout 15 bash -c ' until journalctl -b | grep -i "systemd-sleep\|sleep\.target" | tail -n1 | grep -iq "Stopped target"; do sleep 0.5 done'; then logger -t "SmartSleep" "Das System hat den Energiesparmodus beendet" return 0 else logger -t "SmartSleep" "Das System hat den Energiesparmodus nicht wie erwartet beendet" return 1 fi } suspendStart() { checkSleep && systemctl suspend } suspendFinish() { notify-send "SmartSleep" "Energiesparmodus beendet" checkSleep #/opt/Signal/signal-desktop --no-sandbox & #sleep 3 && kdocker -w $(xwininfo -root -tree | grep Signal | tail -n1 | awk '{print $1}') } trap 'suspendStart' USR1 trap 'suspendFinish' USR2 while true; do sleep infinity & wait $! done