#!/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