노트북 열기/닫기 키 이벤트 스캔이 작동하지 않음

노트북 열기/닫기 키 이벤트 스캔이 작동하지 않음

Void-Linux 및 Wayland 데스크탑 환경(sway)을 갖춘 노트북이 있습니다. 노트북의 열기/닫기 이벤트를 사용자 정의 명령에 바인딩하려고 하는데 여기서 주요 이벤트를 검색할 수 없습니다. Wayland 환경이 아닌 콘솔 showkey --scancodes에서 시도해 보았는데 showkey --keycodes, 노트북을 열거나 닫아도 아무 것도 표시되지 않습니다. 열기/닫기 이벤트를 올바르게 스캔하거나 Wayland에 바인딩하는 방법은 무엇입니까?

추신: 저는 노트북 모드 도구와 같은 복잡한 도구를 설치하고 싶지 않습니다(가능한 경우). 열기/닫기 시 매우 원시적인 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

관련 정보