Tela sensível ao toque com dois monitores

4

eu tenho o Ubuntu 12.04 e dois monitores, onde primeiro é touchscreen.

O sistema reconhece a resolução como uma tela grande com resolução de 3840 x 1080.

O problema é ao usar a calibração por toque, a tela do calibrador é dimensionada em ambas as telas. Então, ao tocar na tela, o ponteiro recebe movimentos duplos no eixo X.

Existe alguma solução?

Gráfico: NVIDIA com visualização dupla

    
por venz 23.05.2012 / 21:08

4 respostas

5

Primeiro, liste todas as fontes de entrada com xinput --list :

⎡ Virtual core pointer                       id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ Sony Vaio Jogdial                         id=8    [slave  pointer  (2)]
⎜   ↳ Advanced Silicon S.A CoolTouch(TM) System id=11   [slave  pointer  (2)]
⎜   ↳ HID-compliant Mouse HID-compliant Mouse   id=13   [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)]
    ↳ Sony Vaio Keys                            id=7    [slave  keyboard (3)]
    ↳ Video Bus                                 id=9    [slave  keyboard (3)]
    ↳ Power Button                              id=10   [slave  keyboard (3)]
    ↳ IR camera                                 id=12   [slave  keyboard (3)]
    ↳ Cherry USB keyboard                       id=14   [slave  keyboard (3)]
    ↳ Cherry USB keyboard                       id=15   [slave  keyboard (3)]
    ↳ AT Translated Set 2 keyboard              id=16   [slave  keyboard (3)]

Pegue o dispositivo que lhe interessa (neste caso, estou usando o "Sistema Avançado Silicon S.A CoolTouch (TM)") e anote seu ID.

Agora, você precisa descobrir a exibição para a qual deseja mapear o dispositivo de entrada. A maneira mais direta é usar xrandr :

Screen 0: minimum 8 x 8, current 3200 x 1080, maximum 16384 x 16384
HDMI-0 connected 1280x1024+1920+0 (normal left inverted right x axis y axis) 338mm x 270mm
   1280x1024     60.02*+
   1280x960      60.00  
   1280x720      60.00    59.94  
   1152x864      75.00    70.00  
   1024x768      60.00  
   800x600       60.32  
   720x480       59.94  
   640x480       59.94    59.93  
LVDS-0 connected primary 1920x1080+0+0 (normal left inverted right x axis y axis) 531mm x 299mm
   1920x1080     60.00*+  59.94  

Neste caso, quero mapear meu dispositivo de toque para a saída LVDS-0 .

Combine o ID da primeira etapa ( 11 here) com o nome da tela da segunda etapa ( LVDS-0 here) e execute este comando:

xinput --map-to-output INPUT-ID SCREEN

No meu exemplo, este comando seria:

xinput --map-to-output 11 LVDS-0

Seu dispositivo de toque não deve ser mapeado adequadamente para o dispositivo de entrada e não deve exigir configuração adicional.

Essas configurações não persistem entre as reinicializações . Por favor, veja esta pergunta em como tornar os comandos xinput persistentes .

    
por RAnders00 17.05.2016 / 19:49
2

O wiki do archlinux é a melhor descrição de como resolver isso, mas aqui está algo um pouco mais específico.

Você deve executar xinput --list para identificar o nome do seu dispositivo de entrada. Eu criei uma planilha para calcular os valores de transformação.

Planilha aqui: link

Eu corri seus números (telas de 1920x1080 dual).

Se a sua tela sensível ao toque estiver à esquerda, o comando seria ('Sistema avançado do Silicon S.A CoolTouch (TM)' é o nome do meu dispositivo de entrada, substitua pelo seu):

xinput set-prop 'Advanced Silicon S.A CoolTouch(TM) System' --type=float 'Coordinate Transformation Matrix' 0.5 0 0 0 1 0 0 0 1

Para a direita, deve ser:

xinput set-prop 'Advanced Silicon S.A CoolTouch(TM) System' --type=float 'Coordinate Transformation Matrix' 0.5 0 0.5 0 1 0 0 0 1
    
por user272160 21.04.2014 / 23:00
1

Veja:    link

Sua matriz é uma das seguintes:

 Touch screen on the left: 0. 5 0 0 0 1 0 0 0 1
 Touch screen on the right: 0. 5 0 0. 5 0 1 0 0 0 1

Eu tenho quase a mesma configuração (mas telas uma em cima das outras) e eu experimento vários cliques depois de configurar a matriz correta, conforme descrito na linha inferior do link acima. Eu não encontrei uma maneira de reconstruir xorg-server no Ubuntu; com certeza o procedimento descrito não funciona.

    
por gani 24.06.2012 / 19:52
1

Como esse é um resultado de pesquisa do Google para esse problema, decidi postar minha solução que, para mim, parece simples.

Encontrei este link no archlinux e você pode usar

xinput --map-to-output <stylus device ID> <screen ID>

então não preciso brincar com "Matriz de Transformação de Coordenadas" ...

    
por Yura 18.07.2015 / 22:30