使用xorg文件设置触摸板的按钮映射

使用xorg文件设置触摸板的按钮映射

我想更改触摸板(具有 Linux Mint 16 MATE 版本的 eee-pc)的映射,以便两根手指点击是中键单击,三指点击是右键单击。

为此,我将ButtonMapping选项添加到/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

但没有效果。

此命令确实有效,但在重置时丢失(并且它在我尝试过的或其他初始化脚本xinput中不起作用):~/.xinitrc

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

更新:xclip 实际上并不是我想要的,因为它也改变了物理键。不过,它确实可以在 MATE 启动应用程序中工作。以下没有,但在手动执行时做了我想要的事情:

#!/bin/sh
synclient TapButton2=2
synclient TapButton3=3

答案1

想法 #1 - gnome-session-proerties

根据您想如何解决这个问题,我可以想到一种应该“有效”的方法。我将创建一个在您登录时运行的应用程序,并将一个 shell 脚本添加到运行此特定命令的列表中。这将在您每次登录时强制运行。

#!/bin/bash

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

然后将此脚本添加到 GNOME 中的“启动应用程序首选项”对话框中。

$ gnome-session-properties

                       SS #1

将项目添加到此对话框后,请确保选中它,以便它在登录期间运行。

想法 #2 - 将选项添加到 50-synaptics.conf

由于您正在处理 Synaptic 触摸板,因此您可以将以下内容添加到“Xorg.conf.d”目录中。这是synaptic手册页中的内容。这是您可以添加的规则的样板InputDevice

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

手册页中还提供了您可以使用的以下选项:

   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"

因此,将它们放在一起,您可以对文件执行类似的操作/usr/share/X11/xorg.conf.d/50-synaptics.conf::

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

另外我想我会将此节添加到其自己的文件中/etc/X11/xorg.conf.d/50-synaptics.conf。此目录用于覆盖或附加其他自定义设置。这样,如果您进行系统更新,如果下面的文件/usr/share/X11被触摸,您的更改将不会受到影响。

答案2

结合上述两种方法(物理和虚拟重新映射),我现在可以将触摸板下方的两个鼠标按钮映射为后退/前进,同时保持点击按钮完好无损。

如果有人对如何操作感兴趣,请参阅以下操作方法:

  • 我重新映射了触摸板的按钮,分别将 1 和 3 切换为 8 和 9。 (即,将左键单击和右键单击与后退和前进单击切换。)这使得触摸板下方的按钮的行为类似于后退和前进按钮,但也使点击来回而不是单击。

    % xinput set-button-map touchpad 8 2 9 4 5 6 7 1 3
    
  • 因此,我还告诉 synaptic 使用新的第 8 和第 9 按钮(即按钮 1 和 3)进行单击和双击。

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

相关内容