Detecção adequada do polegar e da palma do touchpad com libinput

23

Então libinput está chegando ao seu primeiro release estável com um candidato a release

O que adiciona suporte adequado para a detecção de polegar / palma em touch pads, além do suporte a gestos de deslizar e beliscar algo que falta muito no Linux para laptops com capacidade de toque múltiplo.

Alguém pode fornecer uma boa instrução sobre como instalá-lo no Ubuntu 15.04

Como acredito que não o veremos como padrão em uma instalação do Ubuntu por um tempo.

tomodachi
fonte
Não há muita atenção para esta pergunta. Honestamente , não sei por quê.
VRR
A detecção da palma da mão depende do driver do touchpad do kernel e também pode ser configurada no xorg-synaptics. Qual touchpad você possui?
precisa saber é o seguinte
@ Pilot6 o pacote está disponível para download, mas o arquivo leia-me não fornece instruções específicas sobre como compilar no kernel.
RCF 21/07
@ RCF-U15.04 libinputé um aplicativo de espaço do usuário. Não tem nada a ver com o kernel. Ele apenas usa eventos relatados pelo kernel.
precisa saber é o seguinte
@tododachi Se você deseja configurar bem a detecção de palma no Ubuntu, pode fazer outra pergunta e eu o ajudarei.
precisa saber é o seguinte

Respostas:

14

Isto é como instalar a libinput no Ubuntu.

  1. Instale alguns pacotes necessários

    sudo apt-get install git build-essential autoconf automake pkg-config libtool
    sudo apt-get install libmtdev1 libmtdev-dev libudev-dev libevdev-dev xutils-dev libwacom-dev
    
  2. Instale xserver-xorg-dev. Para 14.04.3 pode ser xserver-xorg-dev-lts-vivid. Seja cuidadoso. Você precisa verificar qual xserver-xorgpacote está instalado.

    sudo apt-get install xserver-xorg-dev
    
  3. Clone libinpute xf86-input-libinput.

    git clone git://anongit.freedesktop.org/git/wayland/libinput
    git clone git://anongit.freedesktop.org/xorg/driver/xf86-input-libinput
    
  4. Construa e instale.

    cd libinput
    ./autogen.sh --prefix=/usr
    make && sudo make install
    
    cd ../xf86-input-libinput
    ./autogen.sh --prefix=/usr
    make && sudo make install
    
  5. Adicione à conf/90-libinput.confsequência de arquivos Option "Tapping" "True"antes EndSectionda seção do touchpad.

  6. Copie o arquivo de configuração para ativar libinput.

    sudo cp conf/90-libinput.conf /usr/share/X11/xorg.conf.d/
    

Faça logoff e logon.

Você verá que libinputé usado executando xinput list-props <your_touchpad_id>.

Se você não gosta de usar libinput, sempre pode desativá-lo

sudo rm /usr/share/X11/xorg.conf.d/90-libinput.conf

Acabei de instalar, agora estou descobrindo como configurar a detecção de palma. Parece que está ativado por padrão, mas ainda não entendo como ele usa a largura e a pressão relatadas pelo kernel.

Parece que atualmente não há grandes vantagens em usar libinputno Ubuntu.

xf86-input-libinputapenas envolve o Xorg e nada mais. Portanto, gestos extras não são suportados. Pelo menos eu não sei se eles fazem. Wayland ou Mir serão mais capazes, eu acho.

Após alguns testes, encontrei uma vantagem. Há um problema com xorg-synapticsisso, quando você coloca um dedo na área do botão, não pode usar outro dedo para mover o cursor. Isso é inconveniente para as pessoas que gostam de usar os botões de hardware para clicar. Esse problema foi relatado muitas vezes como um bug.

Em libinputnão existe esse problema em tudo.

Isso foi divertido de testar. Obrigado pela pergunta.

Pilot6
fonte
@ Pilot6 Qual é o sentido de "gestos extras não são suportados" ?
VRR 21/07
@VRR O ponto é que o Ubuntu DE padrão não suporta muitos gestos. Apenas ter libinputnão muda isso. 1,2,3 toques com os dedos trabalham fora da caixa. A detecção de palma é potencialmente mais inteligente, mas parece que não suporta touchpads que relatam apenas largura. Novos modelos de fazer pressão não apoio, porque eles funcionam como touchscreen, etc.
Pilot6
Eu acho que estraguei as coisas um pouco .. durante o processo .. agora estou recebendo a tela preta após a inicialização .. mas nenhuma tela de login do lightdm .. pode ser devido ao xorg .. eu sei o número da versão mais antiga .. pode alguém me diga o processo o que fazer agora .. eu posso chegar ao tty
hunch
Se você tiver problemas, basta remover /usr/share/X11/xorg.conf.d/99-libinput.conf. sudo rm /usr/share/X11/xorg.conf.d/99-libinput.conf
Pilot6
Isso não está resolvendo o problema. Você pode mencionar algo sobre o xserver-xorg-dev .... onde você também mencionou .. tenha cuidado .. Como reverter para a versão mais antiga ..
hunch
25

Para o Ubuntu 15.10+, você pode instalar libinput( ardiloso , xenial , yakkety ) através de apt:

sudo apt install xserver-xorg-input-libinput

Eu ainda tinha que editar o arquivo de configuração para ativar o toque, presumo que, como o Unity absorva a libinput, ele seja exposto através das configurações do painel de controle (usei o vi aqui, você pode usar o gedit ou o que quiser):

Edite o seguinte arquivo (testado em 16.04 2016-4-14 e 16.10 2016-10-14):

sudo vi /usr/share/X11/xorg.conf.d/90-libinput.conf 

Ajuste a seção 'touchpad' para adicionar Option "tapping" "True"e Option "DisableWhileTyping" "True"se você preferir este comportamento:

Section "InputClass"
    Identifier "libinput touchpad catchall"
    MatchIsTouchpad "on"
    MatchDevicePath "/dev/input/event*"
    Driver "libinput"
    Option "Tapping" "True"
    Option "DisableWhileTyping" "True"
EndSection

Sair, entrar .. divirta-se! :)

JimB
fonte
Não há opção "PalmDetection" na libinput, DisableWhileTyping está ativado por padrão. Portanto, não há necessidade de adicionar tudo isso.
precisa saber é o seguinte
Ajustou e removeu as duas opções. Deixei 'Tapping' ativado porque não está ativado por padrão.
JimB
E também não recomendo usar libinput para todos os dispositivos. O teclado fica no meu caso, então escolhi o evento do touchpad no meu caso event5e o gravei nesse arquivo.
precisa saber é o seguinte
@ Pilot6 - você pode dar mais alguns detalhes sobre como usar a libinput apenas no touchpad?
BeeOnRope 23/06
4
Parece que você também pode adicionar Option "AccelSpeed" "-0.5", onde o valor pode ser um valor flutuante de -1 (cursor mais lento) a +1 (cursor mais rápido). Você também pode experimentar esse e outros valores usando xinput. primeiro encontre o ID executando xinput, se seu ID for 12, você poderá fazer xinput list-props 12uma lista de todos os adereços. se você quiser alterar um, obtenha o int para o prop (por exemplo, libinput Accel Speed ​​(281): -0.500000), então você pode fazer xinput set-prop 12 281 -0.4para alterar o acelerador para -0.4.
David784
1

Eu tive um problema semelhante no Lubuntu 17. Tentei instalar a libinput e editar o arquivo .conf sem sucesso.

Mas então eu vi no @ Pilot6 postar acima sobre o uso do xinput para verificar se a libinput está ativa (também seria bom saber qual é o critério a ser verificado, mas discordo).

Eu verifiquei meu xinput com xinput list-props 14(poderia ser um número diferente no seu caso).

o que me deu um synapticstouchpad.

Na lista, havia uma opção para detecção de palma com um número associado a ela (316).

Então, eu costumava xinput set-prop 14 316 1ativar a detecção de palma. E finalmente funciona.

CodeMonkey
fonte