A resolução do mouse muda ao conectar a segunda tela

0

Problema

Meu laptop 16.04 tem uma tela de 1366x768 e tudo é perfeito. Quando conecto um monitor externo (1920x1200), tudo é perfeito, mas a sensibilidade do mouse (posso chamá-lo de resolução ou precisão ). Cursor "pula" entre os pixels enquanto se move lentamente e eu achei difícil apontar pequenas áreas.
Em outras palavras: ponteiro de precisão solta .
Isso acontece usando o mouse ou o touchpad.

Eu vi o mesmo problema ("pixel jump") em outro PC 16.04 com outro mouse e um único monitor de alta resolução (1920x1080), então eu acho que isso é um "recurso" que ocorre com monitores de alta resolução .

O que eu tentei # 1

xset -q|grep accel outputs acceleration: 5/1 threshold: 5

Hackeando com os parâmetros xset, descobri que xset -m 1 5 funciona um pouco melhor, mas não resolve o problema de "precisão" (pixels saltando).

O que eu tentei # 2

Eu tentei procurar por alterações no parâmetro xinput enquanto conectava o monitor externo: xinput list gerou muitos dispositivos, então eu os testei usando: xinput list-props .

O único que muda ao conectar o segundo monitor é:

xinput list-props "Atmel Atmel maXTouch Digitizer"

e o único parâmetro que muda é:

Coordinate Transformation Matrix (144):
1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000

para

Coordinate Transformation Matrix (144):
0.415703, 0.000000, 0.000000, 0.000000, 0.640000, 0.000000, 0.000000, 0.000000, 1.000000

Perguntas

  1. Posso evitar que isso aconteça?
  2. Posso modificar o parâmetro Coordinate Transformation Matrix com xinput?
  3. É possível ter um comportamento de ponteiro diferente para diferentes resoluções de exibição ao mesmo tempo? Quero dizer: "rápido" para oi-res, "suave" para baixa resolução?

Thanx!

    
por j.c 26.10.2016 / 11:13

1 resposta

0

Estou respondendo a minha própria pergunta depois de dois meses, me aproximei novamente do problema e encontrei uma solução.

xinput --list --short gera dois drivers relacionados ao touchpad:

Atmel Atmel maXTouch Digitizer id=11 e ETPS/2 Elantech Touchpad id=14

O único que muda ao conectar o monitor externo é o id=11 . Mudar de volta seus parâmetros usando xinput set-prop 11 144 1 0 0 0 1 0 0 0 1 (144 é a matriz de Transformação de Coordenadas prop) não alterou o comportamento do cursor, então eu tentei hackear com o outro driver e consegui:

xinput set-prop 14 144 .5 0 0 0 .5 0 0 0 1
xinput set-prop 14 273 25

Dessa forma eu consegui incrementar a precisão do cursor quando movia lentamente (através da Matriz de Transformação de Coordenadas, prop 144) e manter uma alta aceleração ao mover meus dedos mais rapidamente no pad (Device Accel Velocity Scaling, prop 273).

Acho que esta informação também pode ser útil para outros proprietários de full-HD.

    
por j.c 29.12.2016 / 13:07