説明する

説明する

ノートブックカバーを閉じても画面は消えません。 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(標準的なケース)、単純なもので十分です。rootxset 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
            ;;

関連情報