
Void-LinuxとWaylandデスクトップ環境を備えたノートパソコンがあります。ノートブックのオープン/クローズイベントをカスタムコマンドにバインドしようとしていますが、ここでメインイベントを取得することはできません。 Wayland環境ではなくコンソールshowkey --scancodes
で試してみましたがshowkey --keycodes
、ノートブックを開いたり閉じたりしても何も表示されません。オープン/クローズイベントを正しくスキャンしたり、Waylandにバインドするにはどうすればよいですか?
PS:私はラップトップモードツールのような複雑なツールをインストールしたくありません(可能であれば)。開く/閉じるときに非常に原始的なbashスクリプトを実行するだけです。
答え1
回避策として、@peregrino69アノテーションに基づいてスクリプトを作成しました。このスクリプトは毎秒 LID 状態を読み込み、/proc/acpi/button/lid/LID0/state
状態が変わるとコールバック関数を実行します。
#!/bin/bash
_state="open"
function on_state_open {
# run commands on open
}
function on_state_close {
# run commands on close
}
function on_state_change {
local update="$1"
local change=false
if [[ "${_state}" != "$update" ]]; then
change=true
fi
_state="$update"
if $change; then
case "${_state}" in
"open")
on_state_open
;;
"closed")
on_state_close
;;
esac
fi
}
while true; do
snapshot=$(cat /proc/acpi/button/lid/LID0/state | awk -d' ' '{print $2}')
on_state_change "$snapshot"
sleep 1
done