Desabilitando o clique do meio na parte inferior de um clickpad / touchpad

2

O Thinkpad T480s tem um "clickpad": um touchpad no qual (partes do) o próprio touchpad é pressionável em vez de ter botões físicos dedicados.

Rodando o X.org 7.7, há uma faixa horizontal na parte inferior do touchpad que atua como os botões do mouse 1, 2 e 3 (ou seja, esquerda, meio e direita); basicamente parece com isso:

+-----------------+
|                 |
|                 |
|                 |
|                 |
|11111 22222 33333|
|11111 22222 33333|
+-----------------+

Como faço para desativar o botão 2 e realocar essa área entre os botões 1 e 3? Ou seja Eu gostaria do seguinte layout:

+-----------------+
|                 |
|                 |
|                 |
|                 |
|11111111 33333333|
|11111111 33333333|
+-----------------+

Observação essa pergunta é diferente de mtrack: como obter zonas de botões verticais? desde que eu estou tentando fazer isso no contexto de XInput, não mtrack. Além disso, o hardware não é Synaptics.

O hardware em questão é identificado por XInput como

⎡ Virtual core pointer                      id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ ETPS/2 Elantech Touchpad                  id=11   [slave  pointer  (2)]
⎜   ↳ ETPS/2 Elantech TrackPoint                id=12   [slave  pointer  (2)]
    
por Cactus 19.04.2018 / 14:42

2 respostas

1

Você pode facilmente obter esse 'botão' do meio para parar de se registrar com um comando como este:

xinput set-button-map 11 1 2 0 4 5 6 7 8 9 10 11 12

O primeiro argumento aqui especifica o ID do dispositivo (neste caso, 11 com base na saída postada acima de xinput ), enquanto o restante mapeia os botões para funções. Os dois primeiros são os botões esquerdo e direito (com 1 e 2 sendo um clique regular e o menu de contexto), o terceiro é o botão do meio (normalmente seria definido como 3 , mas 0 diz ao xinput para mapeá-lo para nada), enquanto o resto cobre outras coisas (rolagem, etc).

Ajustar os outros dois botões para cobrir toda a parte inferior do bloco é um pouco mais complicado e, na verdade, pode não ser possível. Clickpads como esse funcionam com um único switch embaixo do pad que aciona o clique e, em seguida, observando onde o dedo está no pad para determinar em qual botão registrá-lo. Existem três maneiras diferentes de lidar com isso:

  1. No firmware do próprio bloco, sem opções de configuração.
  2. No firmware do próprio bloco, com opções de configuração.
  3. Na parte do espaço do usuário do driver.

O segundo método é sempre o caso se o dispositivo não estiver conectado através de uma conexão serial antiga estilo PS / 2 (provavelmente você está conectado dessa maneira, a maioria dos Thinkpads é assim). A Synaptics faz isso usando o método 3 e oferece muitas opções de configuração para quase tudo. Não tenho certeza de como a Elantech cuida disso, mas acho que provavelmente é o primeiro caso, a menos que seja um dispositivo conectado por USB ou I2C. Nesse caso, é tecnicamente o terceiro, embora eu tenha certeza de que eles não têm nenhum driver de entrada especial para X .

    
por 19.04.2018 / 21:05
1

Se eu digitar:

$ xinput get-button-map 'DLL07BF:01 06CB:7A13 Touchpad'

Eu recebo: 1 2 3 4 5 6 7

Eu tentei usar:

$ xinput set-button-map 13 1 2 0 4 5 6 7

Desativou o clique do meio e do botão direito.

    
por 02.09.2018 / 03:57