Du mußt den Daemon installieren, der auf ACPI-Ereignisse reagiert:
pacman -Sy acpid
Diesen auch in /etc/rc.conf DAEMONS eintragen, ziemlich vorne.
Dann am besten den Rechner neu starten, da durch das Laden von button etc.
einige Resourcen aus /proc schon belegt sind.
Einige Distributionen bringen schon eine ganze Latte vorkonfigurierten ACPI-Ereigniss
Handler mit, bei Arch hast du die Freiheit - und die Pflicht 😉 - das selbst zu tun.
Anlaufstelle ist /etc/acpi
Dort ist im events-Dir eine Datei anything, die jedes ACPI-Ereigniss abfängt und an
den Handler handler.sh in /etc/acpi weitergibt.
Diese Handler-Datei reagiert nun schon auf einige Events (durch Ausgabe ins
Syslog).
Für deinen Fall bietet sich folgende Änderung an:
case "$1" in
button/power)
#echo "PowerButton pressed!">/dev/tty5
case "$2" in
PWRF)
logger "PowerButton pressed: $2"
/sbin/poweroff
;;
*) logger "ACPI action undefined: $2" ;;
esac
;;
button/sleep)
Das führt sofort poweroff nach dem Drücken aus.
Wenn du noch andere Dinge vorher erledigen willst böte sich an, einen Ordner
/etc/acpi/actions anzulegen und dort ausführbare Skripte anzulegen die die
gewünschten Befehle beinhalten.
Dann würdest du analog obigem Beispeil in handler.sh statt /sbin/poweroff eintragen:
/etc/acpi/action/my-poweroff
Um ACPI-Events zu beobachten bietet sich die Logdatei /var/log/acpid.log an.