Skip to content

Instantly share code, notes, and snippets.

@AlexElvers
Created March 22, 2018 12:45
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save AlexElvers/03120bd2de995f6946ff01bf5d21fd74 to your computer and use it in GitHub Desktop.
Save AlexElvers/03120bd2de995f6946ff01bf5d21fd74 to your computer and use it in GitHub Desktop.
Interactive shutdown popup in GNOME when pressing the power button
#!/bin/bash
# Replaces /etc/acpi/handler.sh
case "$1" in
button/power)
case "$2" in
PBTN|PWRF)
logger 'PowerButton pressed'
gnome_users=$(pgrep gnome-session | xargs ps -o %u -p | sed 1d)
while read -r user; do
logger "GNOME user: $user"
su $user -c "DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/$(id -u $user)/bus gnome-session-quit --power-off" || logger "command failed for $user"
done <<<"$gnome_users"
;;
*)
logger "ACPI action undefined: $2"
;;
esac
;;
button/sleep)
case "$2" in
SLPB|SBTN)
logger 'SleepButton pressed'
;;
*)
logger "ACPI action undefined: $2"
;;
esac
;;
ac_adapter)
case "$2" in
AC|ACAD|ADP0)
case "$4" in
00000000)
logger 'AC unpluged'
;;
00000001)
logger 'AC pluged'
;;
esac
;;
*)
logger "ACPI action undefined: $2"
;;
esac
;;
battery)
case "$2" in
BAT0)
case "$4" in
00000000)
logger 'Battery online'
;;
00000001)
logger 'Battery offline'
;;
esac
;;
CPU0)
;;
*) logger "ACPI action undefined: $2" ;;
esac
;;
button/lid)
case "$3" in
close)
logger 'LID closed'
;;
open)
logger 'LID opened'
;;
*)
logger "ACPI action undefined: $3"
;;
esac
;;
*)
logger "ACPI group/action undefined: $1 / $2"
;;
esac
# vim:set ts=4 sw=4 ft=sh et:
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment