아무도 시스템을 망칠 수 없도록 키보드와 마우스를 프로그래밍 방식으로 일시적으로 "고정"하려면 어떻게 해야 합니까?
많은 가능성이 있으며 이것은 유용합니다. 예를 들어, 나에게 노트북이 있는데 내가 없는 동안 누군가가 비밀번호를 알고 있거나 추측할 수 있더라도(아내나 자녀처럼) 누구도 노트북을 사용하지 못하도록 하고 도둑의 식욕을 억제하고 싶습니다. (부적절해 보이기 때문에). - 작업). 또는 원격으로 작업을 하고 있는데 컴퓨터 사용자가 방해를 받지 않는지 확인하고 싶습니다.
답변1
GUI가 X 기반(거의 모든 UNIX GUI의 경우)이라고 가정하면 xinput
.
먼저 장치를 나열하십시오.
$ xinput --list
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ Windows mouse id=6 [slave pointer (2)]
⎣ Virtual core keyboard id=3 [master keyboard (2)]
↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)]
↳ Windows keyboard id=7 [slave keyboard (3)]
마우스의 세부정보를 나열합니다(예제에서는 id=6).
$ xinput --list-props 6
Device 'Windows mouse':
Device Enabled (112): 1
Coordinate Transformation Matrix (114): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
Device Accel Profile (222): 0
Device Accel Constant Deceleration (223): 1.000000
Device Accel Adaptive Deceleration (224): 1.000000
Device Accel Velocity Scaling (225): 10.000000
이제 비활성화하십시오.
$ export DISPLAY=:0
$ xinput set-int-prop 6 "Device Enabled" 8 0
활성화하려면 다음을 수행하십시오.
$ xinput set-int-prop 6 "Device Enabled" 8 1
키보드에서도 마찬가지입니다. int-prop 번호를 올바른 ID로 바꾸세요.
Cygwin에서 테스트하고 작업 중입니다.
물론 장치를 다시 활성화하는 방법을 미리 계획해야 합니다. cron에서 예약하거나, 원격으로 다시 활성화하거나, 그중 하나를 먼저 비활성화하는 등의 작업을 수행합니다.
답변2
xinput --set-int-prop
더 이상 사용되지 않습니다. 을 사용해야 합니다 --set-prop
. 또한 xinput --enable [device]
및를 xinput --disable [device]
사용하여 장치를 각각 활성화 및 비활성화할 수 있습니다.
다음은 노트북의 터치패드를 활성화, 비활성화 및 전환하는 데 사용하는 쉘 스크립트입니다.
#!/bin/bash
# Enables, disables, or toggles device
device='AlpsPS/2 ALPS GlidePoint'
if [[ $1 == -e ]] ; then
# Enable
#xinput --set-prop "$device" "Device Enabled" 1
xinput --enable "$device"
elif [[ $1 == -d ]] ; then
# Disable
#xinput --set-prop "$device" "Device Enabled" 0
xinput --disable "$device"
elif [[ $1 == -t ]] ; then
# Toggle
if [[ $(xinput list-props "$device" |
grep "Device Enabled") == *:*1 ]] ; then
#xinput --set-prop "$device" "Device Enabled" 0
xinput --disable "$device"
else
#xinput --set-prop "$device" "Device Enabled" 1
xinput --enable "$device"
fi
else
echo "usage: $0 [-edt]"
fi
답변3
xinput을 사용하여 답변한 질문은 정확하지만 간단한 화면 보호기 유형 잠금을 찾고 있다면 여기에 빠른 질문이 있습니다. 나는 이 글을 90년대에 썼고, 이 글은 여러분이 비밀번호를 입력할 때까지 X 서버의 키보드와 마우스 이벤트를 먹어치우는 것뿐이었습니다. 올바르게 입력하면 종료 이외의 피드백은 없습니다.
http://ishiboo.com/~danny/Projects/xl/
화면 잠금으로 사용하고 있으니 원하는 방식으로 정확하게 사용해보세요.
답변4
귀하의 답변은 두 번째 사용 사례(원격으로 작업 수행)에 가장 적합할 수 있지만 첫 번째 사용 사례(키보드에서 멀리 떨어져 있음)에는 적합하지 않을 수 있습니다. 돌아올 때 xinput을 다시 실행하여 액세스를 복원하는 방법은 무엇입니까?
시스템에서 멀리 떨어져 있을 때 시스템을 잠그는 표준 솔루션은 다음과 같습니다.XScreensaver, 대부분의 배포판에 기본적으로 설치됩니다. 키보드를 잠그도록 구성된 경우 잠금을 해제하기 전에 비밀번호를 묻는 메시지가 표시됩니다.