외부 변수

외부 변수

터치패드를 비활성화하고 바로가기에 바인딩하는 간단한 스크립트를 만들었습니다.

enabled=true
  if enabled
    then
      xinput -disable "TouchPad" enabled=false
    else
      xinput -enable "TouchPad" enabled=true

외부에서 변수를 활성화하려면 어떻게 해야 합니까? 아니면 변수를 생성하고 다른 스크립트에서 액세스하려면 어떻게 해야 합니까?

답변1

나는 그것을 할 것이다:

#! /bin/sh -
device=TouchPad

if
  LC_ALL=C xinput list-props "$device" |
    grep -q 'Device Enabled.*1$'
then
  xinput disable "$device"
else
  xinput enable "$device"
fi

즉, 별도의 정보를 유지하는 대신 장치가 실제로 활성화 또는 비활성화되었는지 확인하십시오.바꾸다조만간 이는 현실과 동기화되지 않게 될 것이므로 동시 액세스를 방지하기 위해 독점적인 잠금 메커니즘을 마련해야 합니다. 저것바꾸다현재 X 서버 호출과 연결되어야 합니다(루트 창에 표시된 속성을 사용할 수 있음).

설명: xinput list-props "$device"장치의 속성(영어 포함 LC_ALL=C)을 나열합니다. 그 중 하나는 입니다 Device Enabled. 다음을 포함하고 끝나는 줄을 grep찾아 반환합니다 .Device Enabled1진짜(0) 발견된 경우 종료 상태(아무 것도 인쇄하지 않음 -q). 발견되면(장치가 활성화된 경우) 이를 호출하고 xinput disable, xinput enable그렇지 않으면 호출합니다.

관련 정보