Defina o mapeamento de botões do touchpad usando arquivos xorg

3

Eu gostaria de mudar o mapeamento do meu touchpad (de um eee-pc com o Linux Mint 16 MATE edition) para que um toque de dois dedos seja um clique do meio e três seja um clique direito.

Para isso, adiciono a opção ButtonMapping a /usr/share/X11/xorg.conf.d/50-synaptics.conf :

Section "InputClass"
        Identifier "touchpad catchall"
        Driver "synaptics"
        MatchIsTouchpad "on"
# This option is recommend on all Linux systems using evdev, but cannot be
# enabled by default. See the following link for details:
# http://who-t.blogspot.com/2010/11/how-to-ignore-configuration-errors.html
      MatchDevicePath "/dev/input/event*"
        Option "ButtonMapping" "1 3 2 4 5"
EndSection

Mas isso não tem efeito.

Esse comando xinput funciona, mas é perdido na redefinição (e não funciona em ~/.xinitrc ou outros scripts de init que eu tentei):

xinput set-button-map "ETPS/2 Elantech Touchpad" 1 3 2 4 5

Atualização: o xclip não é o que eu quero, pois altera também as chaves físicas. No entanto, funcionou nos aplicativos de inicialização MATE. O seguinte não faz, mas faz o que eu quero quando executado manualmente:

#!/bin/sh
synclient TapButton2=2
synclient TapButton3=3
    
por Zah 16.04.2014 / 19:03

2 respostas

2

Idéia # 1 - gnome-session-proerties

Dependendo de como você gostaria de resolver isso, posso pensar em um caminho que deveria "apenas funcionar". Eu criaria um aplicativo que é executado quando você faz login e adiciona um script de shell a essa lista que executa esse comando específico. Isto irá impor a execução deste a qualquer momento que você entrar.

#!/bin/bash

xinput set-button-map "ETPS/2 Elantech Touchpad" 1 3 2 4 5

Em seguida, adicione esse script à caixa de diálogo "Startup Applications Preferences" no GNOME.

$ gnome-session-properties

Depoisdeadicionarumitemaestediálogo,verifiqueseeleestámarcadoparaqueelesejaexecutadoduranteoslogins.

Idéia#2-Adicionandoopçõesao50-synaptics.conf

ComovocêestálidandocomumtouchpadSynaptic,vocêpodeadicionaroseguinteaoseudiretório"Xorg.conf.d". Isso está correto na página synaptic man. Isso é clichê para uma regra de InputDevice que você poderia adicionar.

   Section "InputDevice"
     Identifier "devname"
     Driver "synaptics"
     Option "Device"   "devpath"
     Option "Path"     "path"
     ...
   EndSection

Novamente na página man, você pode usar as seguintes opções:

   Option "TapButton2" "integer"
          Which mouse button is reported on a non-corner two-finger tap.  Set 
          to 0 to disable. Property: "Synaptics Tap Action"

   Option "TapButton3" "integer"
          Which mouse button is reported on a non-corner three-finger tap.  
          Set to 0 to disable. Property: "Synaptics Tap Action"

Então, colocando tudo junto, você poderia fazer algo parecido com isto no arquivo: /usr/share/X11/xorg.conf.d/50-synaptics.conf :

Section "InputClass"
        Identifier "Switch key mappings"
        MatchDriver "synaptic"
        Option "TapButton2" "2"
        Option "TapButton3" "3"
EndSection

Além disso, acho que adicionaria essa sub-rotina a seu próprio arquivo em /etc/X11/xorg.conf.d/50-synaptics.conf . Esse diretório serve para substituir ou anexar personalizações adicionais. Dessa forma, se você fizer uma atualização do sistema, suas alterações não serão afetadas se o arquivo em /usr/share/X11 for tocado.

    
por 16.04.2014 / 20:44
0

Combinando os dois métodos descritos acima - remapeamento físico e virtual -, agora posso mapear os dois botões do mouse abaixo do touch pad para voltar / avançar, mantendo os botões de toque intactos.

Se alguém estiver interessado em como, veja como:

  • Eu remapeio os botões do meu touchpad, alternando 1 e 3 com 8 e 9, respectivamente. (Ou seja, alternar para a esquerda e para a direita com o clique para trás e para frente.) Isso faz com que os botões abaixo do touchpad se comportem como botões de voltar e avançar, mas também faz com que o toque vá para frente e para trás.

    % xinput set-button-map touchpad 8 2 9 4 5 6 7 1 3
    
  • Por isso, também digo ao synaptic para usar meu novo 8º e 9º botão (ou seja, o botão 1 e 3) para toque simples e duplo.

    Section "InputDevice"
        Identifier "touchpad"
        Driver "synaptic"
        Option "TapButton1" "8"
        Option "TapButton2" "9"
        Option "TapButton3" "2" # I like middle click on three finger clicking
    EndSection
    
por 08.11.2015 / 12:54