xdotool
bash 스크립트로 제어되는 마우스 움직임을 비활성화하여 그렇지 않으면 문제가 되지 않는 마우스를 인계하고 충돌시킬 수 있도록 하고 싶습니다 .
그러나 작업을 계속하려면 버튼이 필요하므로 단순히 마우스를 비활성화하는 것은 옵션이 아닙니다.
이건 같은 문제야이것, 그러나 거기의 솔루션은 나에게 효과적이지 않았습니다. 내 마우스에는 이러한 속성이 없는 것 같습니다.
xinput list
마우스를 3번 보여주세요. ID 10에는 가장 많은 속성이 있고 나머지 두 개에는 몇 가지 옵션이 있습니다.
출력 xinput list-props 10
:
Device 'Logitech Gaming Mouse G502':
Device Enabled (152): 1
Coordinate Transformation Matrix (154): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
libinput Accel Speed (290): 0.000000
libinput Accel Speed Default (291): 0.000000
libinput Accel Profiles Available (292): 1, 1
libinput Accel Profile Enabled (293): 1, 0
libinput Accel Profile Enabled Default (294): 1, 0
libinput Natural Scrolling Enabled (295): 0
libinput Natural Scrolling Enabled Default (296): 0
libinput Send Events Modes Available (275): 1, 0
libinput Send Events Mode Enabled (276): 0, 0
libinput Send Events Mode Enabled Default (277): 0, 0
libinput Left Handed Enabled (297): 0
libinput Left Handed Enabled Default (298): 0
libinput Scroll Methods Available (299): 0, 0, 1
libinput Scroll Method Enabled (300): 0, 0, 0
libinput Scroll Method Enabled Default (301): 0, 0, 0
libinput Button Scrolling Button (302): 2
libinput Button Scrolling Button Default (303): 2
libinput Middle Emulation Enabled (304): 0
libinput Middle Emulation Enabled Default (305): 0
Device Node (278): "/dev/input/event2"
Device Product ID (279): 1133, 49277
libinput Drag Lock Buttons (306): <no items>
libinput Horizontal Scroll Enabled (307): 1
좌표 변환 행렬을 조작해 보았지만 내가 알 수 있는 한 아무 것도 하지 않습니다.
다른 속성 중 어느 것도 도움이 되지 않는 것 같습니다. 이 문제를 해결할 수 있는 다른 방법이 있습니까?
편집 : 출력 xinput list
:
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ Logitech Gaming Mouse G502 id=11 [slave pointer (2)]
⎜ ↳ Logitech Gaming Mouse G502 id=10 [slave pointer (2)]
⎣ Virtual core keyboard id=3 [master keyboard (2)]
↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)]
↳ Power Button id=6 [slave keyboard (3)]
↳ Power Button id=7 [slave keyboard (3)]
↳ Logitech G510 Gaming Keyboard id=8 [slave keyboard (3)]
↳ Logitech G510 Gaming Keyboard id=9 [slave keyboard (3)]
↳ Eee PC WMI hotkeys id=12 [slave keyboard (3)]
↳ Logitech Gaming Mouse G502 id=13 [slave keyboard (3)]
이를 사용하는 동안 xinput test <ID>
ID 10인 장치만 모든 이벤트에 응답하는 것을 발견했습니다.
답변1
분명히 좌표 변환 행렬을 변경하면하다일했는데, 그냥 잘못된 방식으로 한 것 뿐이에요.
모두 0으로 설정하면 행렬에 전혀 영향을 미치지 않습니다. 임의의 값을 변경하면 영향이 있을 수도 있고 없을 수도 있습니다.
마지막으로 매트릭스의 오른쪽 하단 모서리에 있는 항목을 늘리면 마우스 속도가 느려지는 것을 발견했습니다. 따라서 이 값을 더 큰 값으로 변경하면 원하는 효과를 얻을 수 있습니다.
예를 들어:
xinput set-prop 10 154 1 0 0 0 1 0 0 0 1000000
이는 마우스 장치 ID 10에만 적용됩니다.
편집: 다른 1 값을 더 작은 값(예: 0)으로 설정하면 속도가 느려집니다. 따라서 이것은 또한 작동합니다:xinput set-prop 10 154 0 0 0 0 0 0 0 0 1
더 나은 방법은 xinput test 10
아무것도 출력하지 않는 것입니다.
그러나 xdotool과 함께 사용하면 커서가 화면 왼쪽 상단으로 이동하는 것을 발견했습니다. 이것이 여전히 이 질문의 범위 내에 있는지 확실하지 않지만 그럼에도 불구하고 질문입니다.
Edit2: 화면 왼쪽 상단으로의 점프가 xdotool mousemove
. 위의 매트릭스 설정을 사용하여 이러한 명령을 내린 후 마우스를 움직이면 마우스 포인터가 왼쪽 상단으로 이동합니다.
이런 일이 발생하지 않도록 하려면 상대 이동을 수행하기만 하면 됩니다. 예를 들어: xdotool mousemove X Y mousemove_relative 1 1 mousemove_relative -- -1 -1
. 이렇게 하면 추가 마우스 움직임에 영향을 받지 않고 제공된 X 및 Y 좌표로 포인터가 이동됩니다.