summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorkoneu2016-09-10 14:06:18 +0200
committerkoneu2016-09-10 14:17:32 +0200
commitb040a6bd95d6d29cfe0d18bf8603114cce9df849 (patch)
treeb8c7b7a5b436d616e691f2e9b1763783773a8f4b
downloadaur-b040a6bd95d6d29cfe0d18bf8603114cce9df849.tar.gz
init
-rw-r--r--.SRCINFO19
-rw-r--r--PKGBUILD21
-rwxr-xr-xpower.sh19
-rw-r--r--power.sh.rules3
-rw-r--r--power.sh.service4
-rw-r--r--power.sh.sleep.service10
6 files changed, 76 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO
new file mode 100644
index 000000000000..754a0a0d9958
--- /dev/null
+++ b/.SRCINFO
@@ -0,0 +1,19 @@
+pkgbase = power.sh
+ pkgdesc = tiny automated power settings
+ pkgver = 1
+ pkgrel = 1
+ arch = any
+ license = CC0
+ depends = systemd
+ depends = sh
+ source = power.sh
+ source = power.sh.rules
+ source = power.sh.service
+ source = power.sh.sleep.service
+ md5sums = 33a7b13b276192125f5f3ec64cac759a
+ md5sums = e75bf13f0d7bc46dd03db58905013cd0
+ md5sums = 5f814dc5093bef00dfc3c96f70f90e26
+ md5sums = 07a8380291782b467d60bc6b78769120
+
+pkgname = power.sh
+
diff --git a/PKGBUILD b/PKGBUILD
new file mode 100644
index 000000000000..99c42d743c7a
--- /dev/null
+++ b/PKGBUILD
@@ -0,0 +1,21 @@
+# Maintainer: koneu <koneu93 at googlemail dot com>
+
+pkgname='power.sh'
+pkgver='1'
+pkgrel=1
+pkgdesc='tiny automated power settings'
+license=('CC0')
+source=('power.sh' 'power.sh.rules' 'power.sh.service' 'power.sh.sleep.service')
+depends=('systemd' 'sh')
+arch=('any')
+md5sums=('33a7b13b276192125f5f3ec64cac759a'
+ 'e75bf13f0d7bc46dd03db58905013cd0'
+ '5f814dc5093bef00dfc3c96f70f90e26'
+ '07a8380291782b467d60bc6b78769120')
+
+package() {
+ install -Dm755 "${srcdir}/power.sh" "${pkgdir}/usr/share/power.sh"
+ install -Dm644 "${srcdir}/power.sh.rules" "${pkgdir}/usr/lib/udev/rules.d/power.sh.rules"
+ install -Dm644 "${srcdir}/power.sh.service" "${pkgdir}/usr/lib/systemd/system/power.sh.service"
+ install -Dm644 "${srcdir}/power.sh.sleep.service" "${pkgdir}/usr/lib/systemd/system/sleep.target.wants/power.sh.sleep.service"
+}
diff --git a/power.sh b/power.sh
new file mode 100755
index 000000000000..1385f3ee0633
--- /dev/null
+++ b/power.sh
@@ -0,0 +1,19 @@
+#!/bin/sh
+
+case "$1" in
+ 1)
+ echo 'min_power' | tee /sys/class/scsi_host/*/link_power_management_policy
+ echo '1' | tee /sys/module/snd_hda_intel/parameters/power_save_controller \
+ /sys/module/*/parameters/power_save 2>/dev/null
+ echo 'auto' | tee /sys/bus/*/devices/*/power/control \
+ /sys/bus/*/devices/*/device/power/control
+ ;;
+
+ 0)
+ echo 'max_performance' | tee /sys/class/scsi_host/*/link_power_management_policy
+ echo '0' | tee /sys/module/snd_hda_intel/parameters/power_save_controller \
+ /sys/module/*/parameters/power_save 2>/dev/null
+ echo 'on' | tee /sys/bus/*/devices/*/power/control \
+ /sys/bus/*/devices/*/device/power/control
+ ;;
+esac >/dev/null
diff --git a/power.sh.rules b/power.sh.rules
new file mode 100644
index 000000000000..c36bc0b03f61
--- /dev/null
+++ b/power.sh.rules
@@ -0,0 +1,3 @@
+SUBSYSTEM=="usb", ACTION=="add", ATTR{power/wakeup}=="disabled", ATTR{power/wakeup}="enabled"
+SUBSYSTEM=="power_supply", ATTR{online}=="0", RUN+="/usr/bin/systemctl start power.sh.service"
+SUBSYSTEM=="power_supply", ATTR{online}=="1", RUN+="/usr/bin/systemctl stop power.sh.service"
diff --git a/power.sh.service b/power.sh.service
new file mode 100644
index 000000000000..ae3adeef3a28
--- /dev/null
+++ b/power.sh.service
@@ -0,0 +1,4 @@
+[Service]
+ExecStart=/usr/bin/sh -c '/usr/bin/udevadm settle; /usr/share/power.sh 1'
+ExecStop=/usr/share/power.sh 0
+RemainAfterExit=yes
diff --git a/power.sh.sleep.service b/power.sh.sleep.service
new file mode 100644
index 000000000000..2a778e6d5ef1
--- /dev/null
+++ b/power.sh.sleep.service
@@ -0,0 +1,10 @@
+[Unit]
+Requisite=power.sh.service
+After=power.sh.service
+Before=sleep.target
+StopWhenUnneeded=yes
+[Service]
+Type=oneshot
+RemainAfterExit=yes
+ExecStart=/usr/share/power.sh 0
+ExecStop=/usr/share/power.sh 1