PCの電源ボタンのアクションをサスペンドにする方法。

Archlinuxではデフォルトでsystemdが採用されていて電源管理の操作を行っている。polkit をインストールすればルートユーザーでなくても以下のコマンドでその操作を実行できる。

systemctl reboot
systemctl poweroff
systemctl suspend
systemctl hibernate 
systemctl hybrid-sleep 

電源にかかわるイベントの扱いを/etc/systemd/logind.confでチューニングできる。1電源ボタンを押下したときにシャットダウンせずにサスペンドするには以下の行追加する。

HandlePowerKey=suspend

systemdでsystemd-logindを再起動する。このときディスプレイマネージャーなしで直接Xを起動しているとき (startx など) は一旦 X を終了させてから実行すること。さもないとログイン処理を実行させるためにXの環境も再起動をかけようとしてXの終了を待ったまま処理がホールド状態になるかもしれない(操作を受けつけなくなる)。

systemctl restart systemd-logind

以下の記事を参考にした。

ArchWiki:電源管理#API イベント


  1. /etc/systemd/logind.conf.d/*.confでもよい。 ↩︎