首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >扫描膝上型计算机打开/关闭关键事件不起作用

扫描膝上型计算机打开/关闭关键事件不起作用
EN

Unix & Linux用户
提问于 2021-10-05 10:57:02
回答 1查看 40关注 0票数 0

我有一个带有Void和Wayland桌面环境的笔记本电脑。我试图将膝上型计算机的打开/关闭事件绑定到自定义命令,但这里不能扫描关键事件。我在Wayland环境之外的控制台上尝试使用showkey --scancodesshowkey --keycodes,但当我打开或关闭笔记本电脑时,它没有显示任何显示。如何正确扫描打开/关闭事件或将其绑定在Wayland中?

PS:我真的不想安装一些复杂的工具,比如笔记本模式的工具(如果可能的话),我只需要在打开/关闭时运行非常原始的bash脚本。

EN

回答 1

Unix & Linux用户

发布于 2021-10-06 08:27:51

作为解决办法,我创建了一个基于@peregrino69 69注释的脚本:它每秒钟从/proc/acpi/button/lid/LID0/state读取LID状态,如果状态更改,则执行回调函数:

代码语言:javascript
复制
#!/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
票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/671923

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档