ノートブックカバーを閉じても画面は消えません。 Arch インストールスティックで実行すると既に存在します。
システムが次のイベントを記録したため、イベント自体が正しく識別されました。
systemd-logind[500]: Lid opened.
systemd-logind[500]: Lid closed.
カバーを閉じると、画面が消えるようにシステムにどのように通知できますか?
答え1
今私に合った答えを見つけました(シングルユーザーシステム)。
systemd-logind
ハンドルがありますが、ACPIイベント、には標準オプションセットであるpoweroff
、、、reboot
... halt
(参照man logind.conf
)のみがあり、画面を個別に含めません。
前任者acpid
カバーを閉じるなどのACPIイベントを処理するためのハンドラも提供されています。最も簡単な方法は、デモファイルを台無しにして/etc/acpi/handler.sh
セクションを変更することです。
button/lid)
case "$3" in
close)
logger 'LID closed'
;;
open)
logger 'LID opened'
;;
*)
logger "ACPI action undefined: $3"
;;
到着
button/lid)
case "$3" in
close)
logger 'LID closed'
XAUTHORITY=/home/USERNAME/.Xauthority DISPLAY=:0 xset dpms force off
;;
open)
logger 'LID opened'
XAUTHORITY=/home/USERNAME/.Xauthority DISPLAY=:0 xset dpms force on
;;
*)
logger "ACPI action undefined: $3"
;;
(もちろん、広く使用するためには、acpid
このタスクに対して別々のルール/ファイルを作成することをお勧めします。)
説明する
xset dpms force off
暗黙的に画面を閉じます$DISPLAY
(そうでない場合xset -d $DISPLAY dpms force off
)。これを行うには、X
その個人のクッキー(認証ファイル)から始める必要があります$XAUTHORITY
。
ログイン中に起動した場合X
(標準的なケース)、単純なもので十分です。root
xset dpms force off
ログインシェルの設定X
から始めました。~/.shellrc
したがって、ディスプレイとクッキーを手動で提供する必要があります。
付録
ACがオンのときにコマンドを使用しないことで、これをさらに細かく調整できます(xset
オフみんな画面が接続されていますが、udev
システムはカバースイッチを検出しません。
close)
logger 'LID closed'
if [[ $(cat /sys/class/power_supply/AC/online) == 0 ]];then
XAUTHORITY=/home/USERNAME/.Xauthority DISPLAY=:0 xset dpms force off
fi
;;