diff options
author | Sávio Carlos Martins Costa | 2018-06-14 15:13:26 -0300 |
---|---|---|
committer | Sávio Carlos Martins Costa | 2018-06-14 15:13:26 -0300 |
commit | a8516573f70cc5001b6b31849d79acd5a63edce9 (patch) | |
tree | 299c805f8ba76bece896a95c2d51096171933a36 /wakeup-triggers.sh | |
download | aur-a8516573f70cc5001b6b31849d79acd5a63edce9.tar.gz |
version 0.2.2
Diffstat (limited to 'wakeup-triggers.sh')
-rw-r--r-- | wakeup-triggers.sh | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/wakeup-triggers.sh b/wakeup-triggers.sh new file mode 100644 index 000000000000..5a5c6e75d55c --- /dev/null +++ b/wakeup-triggers.sh @@ -0,0 +1,60 @@ +#!/usr/bin/bash + +# This is a script to disable all wakeup triggers but the power button (PWRB) +# Based on the workaround provided for the problem described on Arch Wiki +# https://wiki.archlinux.org/index.php/Power_management/Suspend_and_hibernate#Instantaneous_wakeups_from_suspend +# +# @author Sávio Carlos Martins Costa (saviocmc at protonmail dot com) + +# Sets the character of separation to be the new line \n (the default is a space) +IFS=$'\n' + +WAKEUP=/proc/acpi/wakeup +CONFIG=/etc/wakeup-triggers.conf +BACKUP=/tmp/wakeup-triggers + +backupAndDisableAllCurrentTriggers() { + enabledTriggers=($(cat $WAKEUP | grep "enable")) + for trigger in "${enabledTriggers[@]}"; do + triggerCode=${trigger:0:4} + echo $triggerCode >> $BACKUP + echo $triggerCode > $WAKEUP + done +} + +enableSelectedTriggers() { + selectedTriggers=($(cat $CONFIG | grep --invert-match '#' )) + for trigger in "${selectedTriggers[@]}"; do + echo $trigger > $WAKEUP + done +} + +restoreBackup() { + enabledTriggers=($(cat $WAKEUP | grep "enable")) + for trigger in "${enabledTriggers[@]}"; do + triggerCode=${trigger:0:4} + echo $triggerCode > $WAKEUP + done + backupTriggers=($(cat $BACKUP)) + for trigger in "${backupTriggers[@]}"; do + echo $trigger > $WAKEUP + done + rm $BACKUP +} + +start() { + backupAndDisableAllCurrentTriggers + enableSelectedTriggers + exit 0 +} + +stop () { + restoreBackup + exit 0 +} + +case "$1" in + "start") start;; + "stop") stop;; + *) exit 1;; +esac
\ No newline at end of file |