Add suspend-to-hibernate
This commit is contained in:
13
suspend-to-hibernate/PKGBUILD
Normal file
13
suspend-to-hibernate/PKGBUILD
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
# Maintainer: Manuel Vögele <aur@manuel-voegele.de>
|
||||||
|
pkgname=suspend-to-hibernate
|
||||||
|
pkgver=1
|
||||||
|
pkgrel=1
|
||||||
|
|
||||||
|
arch=('any')
|
||||||
|
source=('suspend-to-hibernate.service')
|
||||||
|
md5sums=('SKIP')
|
||||||
|
|
||||||
|
package() {
|
||||||
|
mkdir -p "${pkgdir}/etc/systemd/system/"
|
||||||
|
cp "${srcdir}/suspend-to-hibernate.service" "${pkgdir}/etc/systemd/system/suspend-to-hibernate.service"
|
||||||
|
}
|
||||||
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