Faixa de movimento do trackpad menor que a resolução da tela. e atividade de toque inesperada (Arch w / Libinput)

0

A atividade de toque inesperada é:

Após a interação, o ponteiro se move para o local equivalente na tela como se fosse uma tela sensível ao toque. Isso é exacerbado pelo alcance entre o touchpad e a tela sendo calibrada incorretamente, então tocar no canto superior direito do trackpad só me leva 90% para o topo e 98% para a direita.

Por exemplo: se meu ponteiro do mouse estiver na parte inferior esquerda da tela e movê-lo para o canto superior direito, não consigo acessar as guias na janela do meu Firefox, por isso coloco meu dedo no meio do trackpad esperando o mecanismo interno para armazenar a localização do ponteiro e retomar o movimento a partir do último local em que o ponteiro estava, no entanto, ele não faz isso. O ponteiro é redefinido de acordo com a localização equivalente na tela.

Eu passei pelas man pages aqui:
Manuais do Libinput
Manpages do Xorg

A documentação no site do Arch é bastante concisa, e outros sites que eu olhei, incluindo o site de libinput oficial do FAQ, não mencionam este problema ocorrendo.

Ajuda? Obrigado

Eu espero que haja um cenário para essas duas coisas. No entanto, aqui está o xinput e xinput-list-props:

â¡ Virtual core pointer                     id=2    [master pointer  (3)]
â   â³ Virtual core XTEST pointer               id=4    [slave  pointer  (2)]
â   â³ AlpsPS/2 ALPS DualPoint TouchPad         id=10   [slave  pointer  (2)]
â   â³ AlpsPS/2 ALPS DualPoint Stick            id=11   [slave  pointer  (2)]
⣠Virtual core keyboard                    id=3    [master keyboard (2)]
    â³ Virtual core XTEST keyboard              id=5    [slave  keyboard (3)]
    â³ Video Bus                                id=6    [slave  keyboard (3)]
    â³ Power Button                             id=7    [slave  keyboard (3)]
    â³ Sleep Button                             id=8    [slave  keyboard (3)]
    â³ AT Translated Set 2 keyboard             id=9    [slave  keyboard (3)]
    â³ Dell WMI hotkeys                         id=12   [slave  keyboard (3)]


x-input -list-props 10
(meu touchpad)

Device 'AlpsPS/2 ALPS DualPoint TouchPad':
    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
    Device Accel Profile (280): 0
    Device Accel Constant Deceleration (281):   1.000000
    Device Accel Adaptive Deceleration (282):   1.000000
    Device Accel Velocity Scaling (283):    10.000000
    Device Product ID (273):    2, 8
    Device Node (274):  "/dev/input/event7"
    Evdev Axis Inversion (284): 0, 0
    Evdev Axis Calibration (285):   <no items>
    Evdev Axes Swap (286):  0
    Axis Labels (287):  "Abs X" (277), "Abs Y" (278), "Abs Pressure" (279)
    Button Labels (288):    "Button Left" (155), "Button Middle" (156), "Button Right" (157), "Button Wheel Up" (158), "Button Wheel Down" (159)
    Evdev Scrolling Distance (289): 0, 0, 0
    Evdev Middle Button Emulation (290):    0
    Evdev Middle Button Timeout (291):  50
    Evdev Third Button Emulation (292): 0
    Evdev Third Button Emulation Timeout (293): 1000
    Evdev Third Button Emulation Button (294):  3
    Evdev Third Button Emulation Threshold (295):   20
    Evdev Wheel Emulation (296):    0
    Evdev Wheel Emulation Axes (297):   0, 0, 4, 5
    Evdev Wheel Emulation Inertia (298):    10
    Evdev Wheel Emulation Timeout (299):    200
    Evdev Wheel Emulation Button (300): 4
    Evdev Drag Lock Buttons (301):  0
    
por Andrew 21.12.2016 / 19:59

2 respostas

1

Isso geralmente significa que a libinput não é , na verdade, instalada corretamente. Apenas ter a biblioteca libinput presente não é suficiente para o Xorg usá-la - ela precisa do "driver de entrada" xf86-input-libinput para isso.

Existem vários drivers de entrada Xorg - juntamente com o baseado em libinput (que é muito novo, com planos para dominar o mundo) ele também tem um driver xf86-input-evdev minimalista, assim como o popular xf86-input-synaptics para todos os tipos de touchpads.

Os touchpads enviam coordenadas X, Y absolutas, para que itens como clickpads ou gestos multi-toque poderia ser interpretado por programas - cabe a libinput ou synaptics para convertê-los em eventos de movimento relativo. Mas a saída mostrada pelo seu xinput list-props indica que o touchpad tinha apenas o driver xf86-input-evdev conectado.

O driver "evdev" foi a escolha padrão nos últimos anos até que a libinput viesse, já que ele pode manipular mouses, teclados e tudo o que o kernel lança nele (embora não necessariamente bem, como você percebeu). Enquanto isso, os drivers "libinput" e "synaptics" também usam o subsistema evdev do kernel, mas possuem lógica adicional para interpretar os eventos recebidos.

(Historicamente, antes mesmo do evdev, havia interfaces separadas para quase tudo - teclados, mouses PS / 2, mouses seriais, joysticks etc.) e drivers X separados para eles também, como "xf86-input-kbd "ou" -mouse "ou" -joy ", sem mencionar os drivers video pré-KMS, que por um longo tempo tiveram que lidar diretamente com coisas como PCI ou BIOS de vídeo. praticamente um sistema operacional!)

O pacote Arch xorg-server é construído de forma que depende de algum driver de entrada, mas não especifica qual (por exemplo, muitas pessoas ainda usam evdev + synaptics, não libinput). Normalmente, ao instalar o Xorg, o pacman perguntará qual dos vários pacotes de "provedores" instalar:

:: There are 2 providers available for xf86-input-driver:
:: Repository extra
   1) xf86-input-evdev  2) xf86-input-libinput

Enter a number (default=1): 

Se você apertar Return e aceitar os padrões, o pacman escolherá o primeiro item alfabeticamente e você obterá o driver mínimo baseado em evdev, que praticamente não faz interpretação nos eventos de entrada - se o kernel envia coordenadas absolutas para ele, então é isso que o Xorg vai ver.

Ah, e de acordo com a saída xinput , suas configurações de Unicode estão quebradas.

    
por 22.12.2016 / 08:37
0

Resolvido. Obrigado @grawity. Um pacman -Ss xf86-input-libinput rápido revelou que xf86-input-libinput de fato não foi instalado. Eu instalei o pacote e reiniciei. Ao reiniciar o touchpad estava funcionando corretamente. Resposta correta para a pessoa que pode responder às perguntas de acompanhamento que eu fiz nos comentários para o post original.

    
por 22.12.2016 / 00:29