Add suspend-to-hibernate
This commit is contained in:
28
suspend-to-hibernate/suspend-to-hibernate.service
Normal file
28
suspend-to-hibernate/suspend-to-hibernate.service
Normal file
@@ -0,0 +1,28 @@
|
||||
[Unit]
|
||||
Description=Delayed hibernation trigger
|
||||
Documentation=https://bbs.archlinux.org/viewtopic.php?pid=1420279#p1420279
|
||||
Documentation=https://wiki.archlinux.org/index.php/Power_management
|
||||
Conflicts=hibernate.target hybrid-sleep.target
|
||||
Before=sleep.target
|
||||
StopWhenUnneeded=true
|
||||
|
||||
[Service]
|
||||
Type=oneshot
|
||||
RemainAfterExit=yes
|
||||
Environment="WAKEALARM=/sys/class/rtc/rtc0/wakealarm"
|
||||
Environment="SLEEPLENGTH=+30minute"
|
||||
ExecStart=-/usr/bin/sh -c 'echo -n "alarm set for "; date +%%s -d$SLEEPLENGTH | tee $WAKEALARM'
|
||||
ExecStop=-/usr/bin/sh -c '\
|
||||
alarm=$(cat $WAKEALARM); \
|
||||
now=$(date +%%s); \
|
||||
if [ -z "$alarm" ] || [ "$now" -ge "$alarm" ]; then \
|
||||
echo "hibernate triggered"; \
|
||||
systemctl hibernate; \
|
||||
else \
|
||||
echo "normal wakeup"; \
|
||||
fi; \
|
||||
echo 0 > $WAKEALARM; \
|
||||
'
|
||||
|
||||
[Install]
|
||||
WantedBy=sleep.target
|
||||
Reference in New Issue
Block a user