유휴 상태 일 때 Xorg에서 마우스 (터치 패드가 아님) 비활성화


17

나는 열렬한 키보드 사용자이지만 여전히 마우스가 필요합니다. 손 이동을 최소화하기 위해 마우스를 키보드 아래에 있습니다. 참고로,이 방법으로 마우스를 사용하면 내 손이 더 자연 스럽습니다.

내가 현재 사용하고 정리합니다를 내가 마우스를 사용하지 않는 동안 포인터를 숨 깁니다. 불행히도 입력하는 동안 때때로 방해가되어 포인터가 다시 나타납니다. 때로는 포인터가 다른 창 위로 이동하여 포커스가 현재 창에서 멀어집니다. (조잡한 초점을 사용하고 있으며 이것을 변경하는 것은 옵션이 아닙니다.)

이제 일정 시간 동안 유휴 시간이 지나면 포인터를 숨길뿐만 아니라 마우스를 모두 비활성화 할 수있는 가능성을 찾고 있습니다. 마우스 버튼을 클릭하거나 마우스 휠을 사용하면 마우스를 다시 활성화해야합니다.

답변:


16

가장 먼저해야 할 일은 마우스를 끄는 것인데 X에서만 가능합니다 xinput. 이를 위해 우리는를 사용할 수 있습니다 .

컴퓨터 (X 서버)에 연결된 입력 장치를 검색해야합니다.

pbm@tauri ~ $ xinput list
⎡ Virtual core pointer                          id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ A4Tech USB Mouse                          id=10   [slave  pointer  (2)]
⎜   ↳ Macintosh mouse button emulation          id=11   [slave  pointer  (2)]
⎣ Virtual core keyboard                         id=3    [master keyboard (2)]
     [...]

우리가 사용해야하는 기기는 A4Tech USB Mouse입니다 id=10. 다음으로 해당 장치의 속성을 확인해야합니다.

pbm@tauri ~ $ xinput list-props "A4Tech USB Mouse"
Device 'A4Tech USB Mouse':
       Device Enabled (121):   1
       [....]

장치를 끄려면 속성을 변경해야합니다 Device Enabled.

xinput set-prop DEV PROP STATE
xinput set-prop "A4Tech USB Mouse" "Device Enabled" 0

켜려면 :

xinput set-prop "A4Tech USB Mouse" "Device Enabled" 1

다음은 자동으로 수행하는 것입니다 ...;)이 예제에서는 키보드 단축키로 마우스를 비활성화하고 마우스 왼쪽 + 오른쪽 버튼을 눌러 활성화합니다.

이를 위해 X 서버 외부에서 작동하는 바로 가기 데몬 인 actkbd를 사용할 수 있습니다 .

먼저 actkbd에 대한 빈 구성 파일을 만들어야 touch /etc/actkbd.conf합니다. 다음은 컴퓨터에 연결된 장치를 발견하는 것입니다.

pbm@tauri ~ $ cat /proc/bus/input/devices 
I: Bus=0003 Vendor=046d Product=c312 Version=0110
N: Name="BTC USB Multimedia Keyboard"
P: Phys=usb-0000:00:1d.0-1.6/input0
S: Sysfs=/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.6/2-1.6:1.0/input/input6
U: Uniq=
H: Handlers=kbd event3 
B: EV=120013
B: KEY=1000000000007 ff9f207ac14057ff febeffdfffefffff fffffffffffffffe
B: MSC=10
B: LED=7

I: Bus=0003 Vendor=09da Product=000a Version=0110
N: Name="A4Tech USB Mouse"
P: Phys=usb-0000:00:1d.0-1.5/input0
S: Sysfs=/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.5/2-1.5:1.0/input/input8
U: Uniq=
H: Handlers=mouse1 event5 
B: EV=17
B: KEY=ff0000 0 0 0 0
B: REL=343
B: MSC=10

[...]

이 부분에서 가장 흥미로운 것은 키보드와 마우스 장치의 이름과 핸들러입니다.

먼저 키보드 단축키로 마우스 끄기를 처리하므로 키 ID를 찾아야합니다.

pbm@tauri ~ $ sudo actkbd -s -d /dev/input/event3
Keys: 29+41+42 //we need to press keys that will turn off mouse, 29+41+42 is Ctrl + Shift + `

키 ID가 무엇인지 알면 구성 파일 ( /etc/actkbd.conf)에 키 ID를 넣어야합니다 .

29+41+42:::sudo -u pbm DISPLAY=:0 xinput set-prop "A4Tech USB Mouse" "Device Enabled" 0

테스트하려면 actkbd데몬 모드에서 실행해야 합니다.

pbm@tauri ~ $ sudo actkbd -d /dev/input/event3 -D

같은 방식으로 "켜기"이벤트를 처리해야합니다.

  1. 마우스 장치의 핸들러 확인
  2. 마우스 왼쪽 버튼으로 키 코드 확인 actkbd
  3. 그것을 넣어 actkbd.conf
  4. actkbd 데몬을 실행하여 마우스 입력 장치를 모니터링

실행중인 데몬은 환경에서 init 스크립트 또는 자동 실행 스크립트로 실현 될 수 있습니다.

마우스를 자동으로 끄려면 입력 장치 ( cat /dev/input/event5)를 모니터링하고 입력 이 없을 때 장치 를 끌 수 있습니다 ...

나는 짧은 소개가 당신을 도울 수 있기를 바랍니다 ...;)


힌트를 주셔서 감사합니다 actkbd! 내 질문을 게시 한 후 이미을 사용하기 xinput로 결정했지만 마우스 버튼을 눌러 마우스를 다시 활성화하는 방법을 찾지 못했습니다.
igor December

이것은 매우 잘 작성된 답변입니다.
pjc50

그 정보, 특히 atkkbd에 대한 힌트에 감사드립니다

“장치 활성화 / 비활성화”속성과 함께 --set-prop 옵션을 사용하는 대신 --enable 및 --disable 옵션을 사용할 수도 있습니다 (예 : xinput --enable [device] 및 xinput --disable [device]) .
thebodzio 2013

1

"포인터 캡처"그놈 패널 애플릿 을 사용해 보셨습니까? ?

마우스 포인터를 화면 영역에 고정하면 포인팅 장치가 다른 작업을 수행 할 수 있습니다. 예를 들어,이 기능을 사용하면 전동 의자 사용자가 단일 전동 의자 조이스틱으로 전동 의자와 마우스 포인터를 모두 제어 할 수 있습니다

포인터 캡처 패널 애플릿은 패널에서 이러한 영역을 생성하여 사용자가 결정된 방식으로 놓을 때까지 포인터를 잠글 수 있습니다.

그놈 데스크탑 메뉴 표시 줄 / 시스템 패널을 마우스 오른쪽 버튼으로 클릭하고 패널에 추가를 선택한 다음 포인터 캡처를 선택하고 추가 버튼을 클릭하여 포인터 캡처 패널 애플릿을 설치할 수 있습니다.

gnome.org의 설명이 명확하지 않은 경우, 패널에 마우스가 들어 오거나 (또는 ​​사용자가 클릭 할 때) 커서가 사라지고 정의 된 동작 (예 : 두 번째 클릭. 정확히 필요한 것 같습니까?


나는 이것을 사용했지만 몇 가지 문제를 만들었습니다. Alt + F1응용 프로그램 메뉴에서 열 수 없습니다 . 그 원인을 모르겠습니다. 나는 우분투 사용자입니다.
balki
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.