Recentemente comprei um novo Dell XPS 15 e instalei o Debian nele. Anteriormente, ele executava o Windows 10 e a detecção/rejeição da palma funcionava perfeitamente, exatamente como eu esperava. Mas agora, executando o Debian e usando libinput
, a detecção de palma é (até onde eu sei) inexistente/completamente quebrada.
SaÃda de xinput | grep -i touchpad
:
⎜ ↳ SynPS/2 Synaptics TouchPad id=13 [slave pointer (2)]
SaÃda de xinput list-props 13
:
Device 'SynPS/2 Synaptics TouchPad':
Device Enabled (116): 1
Coordinate Transformation Matrix (118): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
libinput Tapping Enabled (269): 1
libinput Tapping Enabled Default (270): 0
libinput Tapping Drag Enabled (271): 1
libinput Tapping Drag Enabled Default (272): 1
libinput Tapping Drag Lock Enabled (273): 0
libinput Tapping Drag Lock Enabled Default (274): 0
libinput Tapping Button Mapping Enabled (275): 1, 0
libinput Tapping Button Mapping Default (276): 1, 0
libinput Accel Speed (251): 0.000000
libinput Accel Speed Default (252): 0.000000
libinput Natural Scrolling Enabled (256): 0
libinput Natural Scrolling Enabled Default (257): 0
libinput Send Events Modes Available (236): 1, 1
libinput Send Events Mode Enabled (237): 0, 0
libinput Send Events Mode Enabled Default (238): 0, 0
libinput Left Handed Enabled (258): 0
libinput Left Handed Enabled Default (259): 0
libinput Scroll Methods Available (260): 1, 1, 0
libinput Scroll Method Enabled (261): 1, 0, 0
libinput Scroll Method Enabled Default (262): 1, 0, 0
libinput Click Methods Available (277): 1, 1
libinput Click Method Enabled (278): 1, 0
libinput Click Method Enabled Default (279): 1, 0
libinput Middle Emulation Enabled (265): 0
libinput Middle Emulation Enabled Default (266): 0
libinput Disable While Typing Enabled (280): 1
libinput Disable While Typing Enabled Default (281): 1
Device Node (239): "/dev/input/event1"
Device Product ID (240): 2, 7
libinput Drag Lock Buttons (267): <no items>
libinput Horizontal Scroll Enabled (268): 1
Meu /etc/X11/xorg.conf.d/40-libinput.conf
arquivo:
Section "InputClass"
Identifier "libinput touchpad catchall"
MatchIsTouchpad "on"
MatchDevicePath "/dev/input/event*"
Driver "libinput"
Option "Tapping" "on"
Option "TappingDrag" "on"
EndSection
Uma amostra de eventos de entrada gerados com sudo evemu-record /dev/input/event1 >> eventlog-finger.log
, usando meu dedo no touchpad como faço durante o uso normal.
Uma amostra de eventos de entrada gerados com sudo evemu-record /dev/input/event1 >> eventlog-palm.log
, usando a palma da mão no touchpad como acontece enquanto tento digitar.
Se você observar os logs de eventos, verá que ABS_TOOL_WIDTH
só aparece uma vez no inÃcio de cada log. Pelo que eu encontrei, aqui e aqui , este é um problema (um pouco) conhecido onde ABS_TOOL_WIDTH
nunca é relatado como algo diferente de 0. Isso aparentemente quebra a detecção de palma usando drivers synaptics, e estou assumindo em libinput também.
Tentar fazer qualquer coisa no meu laptop sem conectar um mouse externo e desabilitar o touchpad é quase impossÃvel, o mouse pula e mais preocupante, à s vezes minha palma pode clicar no touchpad, me fazendo digitar em algum lugar imprevisÃvel ou em lugar nenhum.
Se alguém souber alguma coisa sobre como começar a corrigir isso, seria muito apreciado.
Editar 1:
Devo mencionar que já tentei usar os drivers do touchpad Synaptics, inclusive fazendo o seguinte:
apt install -y xserver-xorg-input-synaptics
synclient PalmDetect=1
e, em seguida, mexendo com as seguintes configurações sem sucesso:
synclient PalmMinWidth=4
synclient PalmMinZ=80
Eu tentei tudo entre 0 e 15 para PalmMinWidth
e 50 a 150 para PalmMinZ
. Nada funciona. Mas se ainda não ficou claro - eu já sei que isso é porque ABS_TOOL_WIDTH
não é relatado . Isso eu tenho certeza e, portanto, essa não é a base da minha pergunta - minha pergunta diz respeito a como eu corrigiria o relatório ABS_TOOL_WIDTH
ou outra solução alternativa que produziria um resultado semelhante.
Crie um arquivo
/etc/X11/xorg.conf.d/50-synaptics.conf
com o conteúdo:Reinicie seu laptop depois para aplicar a nova configuração. Jogue com
PalmMinWidth
a opção para obter o melhor resultado - tente valores3
,4
etc.Outra maneira é definir as propriedades temporariamente, basta executar no terminal:
Tente valores diferentes para
Synaptics Palm Dimensions
.Leia adicionalmente synaptics - driver de entrada do touchpad Synaptics .
Muitas semanas de grandes aborrecimentos e finalmente cheguei à solução estupidamente simples de:
apenas atualize os pacotes .
Baixei os 4 pacotes a seguir:
libinput10_1.11.3-1_amd64.deb
libinput-bin_1.11.3-1_amd64.deb
libwacom2_0.30-1_amd64.deb
libwacom-common_0.30-1_all.deb
E instalei-os com
dpkg
o seguinte:E reiniciei meu sistema (reiniciar o X também deve funcionar). Depois que meu laptop inicializou, a detecção de palma funcionou como um encanto.
libinput faz detecção de palma baseada em pressão, mas precisa dos limites, veja o link dele aqui: https://wayland.freedesktop.org/libinput/doc/latest/touchpad-pressure-debugging.html
Isso é tudo o que você pode fazer aqui porque a largura da ferramenta nunca é definida (embora libinput não veja isso de qualquer maneira), mas as chances são altas de que, uma vez que você defina a pressão em um arquivo quirk (ou hwdb, se você estiver em libinput <= 1.11) vai funcionar.
Registre um bug, por favor, depois de identificar o limite de pressão.