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 intervalo entre o touchpad e a tela sendo calibrada incorretamente, portanto, tocar o canto superior direito do trackpad leva apenas 90% para o topo e 98% para a direita.

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

Eu já passei pelas man pages aqui:
Libinput Manpages
Manpages 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.

Socorro? obrigado

Eu espero que haja um cenário para essas duas coisas. No entanto, aqui está o xinput e o 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

O que o touchpad mostra como 'xinput' e 'xinput list-props'? Você está usando o kernel do estoque Arch? O xf86-input-libinput está realmente instalado? (Não seria a primeira vez que alguém esqueceu isso.) O problema persiste se você fizer o downgrade para o xf86-input-synaptics?
grawity

O xf86-input-libinput não foi instalado. Eu nunca teria adivinhado que esse seria o problema. Como eu pude usar meus dispositivos de entrada se nenhum driver foi instalado e os arquivos xorg.conf seguiram a sintaxe do libinput? Eu estou supondo que o xorg assume uma dependência de libinput em sua configuração mas não / não o instalou? Como isso funcionou? Existe um sistema de driver de fallback que eu estava usando?
Andrew

Existe um driver de fallback xf86-input-evdev. (Antes da libinput, uma combinação de evdev e xf86-input-synaptics era a mais comum).
grawity

Respostas:


1

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

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

Os touchpads enviam coordenadas absolutas X, Y, para que coisas como clickpads ou gestos multi-touch podem ser interpretados 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 ", para não mencionar pré-KMS vídeo drivers, que por um longo tempo tiveram que lidar diretamente com coisas como PCI ou o BIOS de vídeo. O servidor X era praticamente um sistema operacional!


O arco xorg-server pacote é construído de modo que depende de alguns 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ê acabou de bater Retorna e aceite 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 enviar coordenadas absolutas para ele, então é isso que o Xorg vai ver.


Ah, e de acordo com o xinput produzir o seu Configurações Unicode estão quebrados.


Obrigado. Isso explica isso. Lembro-me de instalar o evdev, e é isso que vi ao navegar pelos arquivos de configuração.
Andrew

0

Resolvido Obrigado @grawity. Um rápido pacman -Ss xf86-input-libinput 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.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.