我有一个带有Void和Wayland桌面环境的笔记本电脑。我试图将膝上型计算机的打开/关闭事件绑定到自定义命令,但这里不能扫描关键事件。我在Wayland环境之外的控制台上尝试使用showkey --scancodes和showkey --keycodes,但当我打开或关闭笔记本电脑时,它没有显示任何显示。如何正确扫描打开/关闭事件或将其绑定在Wayland中?
PS:我真的不想安装一些复杂的工具,比如笔记本模式的工具(如果可能的话),我只需要在打开/关闭时运行非常原始的bash脚本。
发布于 2021-10-06 08:27:51
作为解决办法,我创建了一个基于@peregrino69 69注释的脚本:它每秒钟从/proc/acpi/button/lid/LID0/state读取LID状态,如果状态更改,则执行回调函数:
#!/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
donehttps://unix.stackexchange.com/questions/671923
复制相似问题