From 23e2fc48e2fb374c8784d4b26790eba422d07937 Mon Sep 17 00:00:00 2001 From: Darren 'Tadgy' Austin Date: Mon, 20 Nov 2023 12:50:14 +0000 Subject: [PATCH] Don't suspend on lid close. --- etc/.gitignore | 1 - etc/acpi/.gitignore | 1 + etc/acpi/handler.sh | 97 +++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 98 insertions(+), 1 deletion(-) create mode 100644 etc/acpi/.gitignore create mode 100755 etc/acpi/handler.sh diff --git a/etc/.gitignore b/etc/.gitignore index 078f670..1b97b8d 100644 --- a/etc/.gitignore +++ b/etc/.gitignore @@ -5,7 +5,6 @@ /*.orig /*.OLD /UPower/ -/acpi/ /adjtime /appstream.conf /apparmor.d/ diff --git a/etc/acpi/.gitignore b/etc/acpi/.gitignore new file mode 100644 index 0000000..5a8bf06 --- /dev/null +++ b/etc/acpi/.gitignore @@ -0,0 +1 @@ +/events/ diff --git a/etc/acpi/handler.sh b/etc/acpi/handler.sh new file mode 100755 index 0000000..3cb47e0 --- /dev/null +++ b/etc/acpi/handler.sh @@ -0,0 +1,97 @@ +#!/bin/sh +# Default acpi script that takes an entry for all actions + +# NOTE: This is a 2.6-centric script. If you use 2.4.x, you'll have to +# modify it to not use /sys + +# $1 should be + or - to step up or down the brightness. +step_backlight() { + for backlight in /sys/class/backlight/*/; do + [ -d "$backlight" ] || continue + step=$(( $(cat "$backlight/max_brightness") / 20 )) + [ "$step" -gt "1" ] || step=1 #fallback if gradation is too low + printf '%s' "$(( $(cat "$backlight/brightness") $1 step ))" >"$backlight/brightness" + done +} + +minspeed=$(cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_min_freq) +maxspeed=$(cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq) +setspeed="/sys/devices/system/cpu/cpu0/cpufreq/scaling_setspeed" + + +case "$1" in + button/power) + case "$2" in + PBTN|PWRF) + logger "PowerButton pressed: $2, shutting down..." + shutdown -P now + ;; + *) logger "ACPI action undefined: $2" ;; + esac + ;; + button/sleep) + case "$2" in + SBTN|SLPB) + # suspend-to-ram + logger "Sleep Button pressed: $2, suspending..." + zzz + ;; + *) logger "ACPI action undefined: $2" ;; + esac + ;; + ac_adapter) + case "$2" in + AC|ACAD|ADP0) + case "$4" in + 00000000) + printf '%s' "$minspeed" >"$setspeed" + #/etc/laptop-mode/laptop-mode start + ;; + 00000001) + printf '%s' "$maxspeed" >"$setspeed" + #/etc/laptop-mode/laptop-mode stop + ;; + esac + ;; + *) logger "ACPI action undefined: $2" ;; + esac + ;; + battery) + case "$2" in + BAT0) + case "$4" in + 00000000) #echo "offline" >/dev/tty5 + ;; + 00000001) #echo "online" >/dev/tty5 + ;; + esac + ;; + CPU0) + ;; + *) logger "ACPI action undefined: $2" ;; + esac + ;; + button/lid) + case "$3" in + close) + # suspend-to-ram + #logger "LID closed, suspending..." + #zzz + : + ;; + open) + logger "LID opened" + ;; + *) logger "ACPI action undefined (LID): $2";; + esac + ;; + video/brightnessdown) + step_backlight - + ;; + video/brightnessup) + step_backlight + + ;; + *) + logger "ACPI group/action undefined: $1 / $2" + ;; +esac