Desativa o movimento do ponteiro do mouse

3

Eu quero desativar o movimento do mouse, controlado por um script bash, para que o xdotool assuma o controle do mouse ou não seja um problema.

No entanto, eu preciso que os botões continuem funcionando, então simplesmente desabilitar o mouse não é uma opção.

Esta é a mesma pergunta que este , mas as soluções não funcionam para mim. Meu mouse não parece ter essas propriedades.

xinput list mostra o mouse 3 vezes. A ID 10 tem mais propriedades, com as outras duas tendo um subconjunto de opções.

Saída de 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

Eu tentei mexer na Matriz de Transformação de Coordenadas, mas, até onde eu sei, isso não faz nada.

Nenhuma das outras propriedades parece que poderia me ajudar - existe alguma outra maneira de resolver este problema?

Editar: Saída de 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)]

Usando xinput test <ID> , notei que apenas o dispositivo com o ID 10 respondeu com algum evento.

    
por Xandaros 04.07.2017 / 14:37

1 resposta

2

Aparentemente, mudar a matriz de transformação de coordenadas faz funcionar, eu fiz o caminho errado.

A configuração para uma matriz all-0 não faz nada. Alterar valores aleatórios pode ou não ter efeito.

No final, notei que aumentar a entrada da matriz na parte inferior direita diminuiu a velocidade do meu mouse. Então, mudar esse valor para algo grande tem o efeito desejado.

Por exemplo: xinput set-prop 10 154 1 0 0 0 1 0 0 0 1000000

Isso só funcionou com o dispositivo de mouse com o ID 10.

Editar: Definir os outros valores 1 para algo pequeno - digamos, 0 - também torna mais lento. Então, isso funciona também: xinput set-prop 10 154 0 0 0 0 0 0 0 0 1

Melhor ainda, xinput test 10 não produz nada com isso.

No entanto, quando usado junto com xdotool, noto meu cursor pulando para o canto superior esquerdo da tela. Não tenho certeza se isso ainda está no escopo desta questão, mas ainda é um problema.

Edit2: parece que o salto para o canto superior esquerdo da tela é causado por xdotool mousemove . Se você mover o mouse após emitir tal comando com as configurações da matriz, o ponteiro do mouse salta para o canto superior esquerdo.

Para evitar que isso aconteça, você pode simplesmente acompanhá-lo por um movimento relativo. Por exemplo, assim: xdotool mousemove X Y mousemove_relative 1 1 mousemove_relative -- -1 -1 . Isso moverá o ponteiro para as coordenadas X e Y fornecidas e não será afetado por movimentos adicionais do mouse.

    
por 04.07.2017 / 17:28

Tags