我的本意是我的笔记本是archlinux+kdeplasma5环境。看到同事的macbookpro支持很多手势操作(gestures),也希望在archlinux和kde环境下使用。接下来配置方便的手势操作。查询资料发现touchegg和libinput-gestures都可以满足要求,但是在实际配置过程中,touchegg还有很多问题没有解决,而libinput-gestures基本没有大问题。所以本文主要介绍如何配置libinput-gestures。预备知识电脑窗口管理器kde是X.Org桌面环境,aur上维护了一个基于X.OrgServer的驱动xf86-input-libinput-git,非常方便。它们之间的关系如下:X11客户端对我来说是kdeplasma5。驱动程序libinput,linux生态系统提供了很多驱动程序,本文使用的驱动程序是libinput,负责分析内核从输入设备获取的数据,并发送到桌面环境,桌面环境提供反馈根据不同的数据。术语解释touchpad:通常意义上的触摸板。clickpad:指底部没有按键的触摸板,简称clickpad。clickpad通过不同手指数的点击行为来模拟鼠标的左、中、右点击。这些都可以配置或关闭。单击:单击,本文上下文中物理按钮的“按下”和“释放”。触控板软件按键行为:触控板上软按键的行为,详见触控板软件按键行为。libinputinstallationinstallbasiclibinputandxf86-input-libinputsudogpasswd-a$USERinputsudopacman-Slibinputxf86-input-libinputconfigurationlibinput有两种配置方式:使用配置文件的永久配置方式使用xinput用于运行时(runtime)的命令行工具,用于实时配置,主要用于调试。配置文件libinput安装后,默认的配置文件在/usr/share/X11/xorg.conf.d目录下。如果安装多个驱动,会有多个文件:?xorg.conf.dlltotal12K-rw-r--r--1rootroot1.4KAug1405:4010-quirks.conf-rw-r--r--1rootroot964May520:2440-libinput.conf-rw-r--r--1rootroot1.8KNov18201670-synaptics.conf笔者这里安装了3个驱动,所以有3个配置文件。默认情况下,kde会根据文件前缀号的大小来决定先使用哪个配置文件,该号的值越大,优先级越高。我们需要将默认的配置文件复制到/etc/X11/xorg.conf.d/目录下:sudocp/usr/share/X11/xorg.conf.d/40-libinput.conf/etc/X11/xorg。conf.d/40-libinput.conf以下是文件中触摸板部分的配置:Section"InputClass"Identifier"touchpad"MatchIsTouchpad"on"MatchDevicePath"/dev/input/event*"Driver"libinput"Option"Tapping""on"Option"ButtonMapping""1304567"Option"TappingButtonMap""lmr"Option"DisableWhileTyping""on"Option"TappingDrag""on"EndSection请参阅libinput手册页:基于X.Orginputfordetailedparametersandexplanationsdirver,解释以下重要配置参数:Option"Tapping""on":用手指点击触摸板发送鼠标点击事件Option"TappingButtonMap""lmr":用手指点击对应鼠标左键,两指点击对应鼠标中键,3次鼠标点击对应鼠标右键。Option"ButtonMapping""1304567",按键映射,详见libinput#Button_Mapping,这里作者关闭了3个手指对应的左键。Option"DisableWhileTyping""on":打字时不检测触摸板事件,防止用户误触触摸板造成不必要的影响。Option"TappingDrag""on":打开点击和拖动。调试确定触摸板设备?~xinputlist?Virtualcorepointerid=2[masterpointer(3)]??VirtualcoreXTESTpointerid=4[slavepointer(2)]??SynPS/2SynapticsTouchPadid=13[slavepointer(2)]??TPPS/2IBMTrackPointid=16[slavepointer(2)]......查看touchpad的详细配置?~xinputlist-props"SynPS/2SynapticsTouchPad"Device'SynPS/2SynapticsTouchPad':启用设备(142):1坐标转换矩阵(144):1.000000、0.000000、0.000000、0.000000、1.000000、0.000000、0.000000、0.000000、1.000000libinput25Tapping9已启用(已启用默认libinput25Tapping9)):0libinputTappingDragEnabled(297):1libinputTappingDragEnabledDefault(298):1libinputTappingDragLockEnabled(299):0libinputTappingDragLockEnabledDefault(300):0libinputTappingButton映射已启用(301):0、1libinput点击按钮映射默认值(302):1、0libinput加速速度(277):0.000000libinput加速速度默认值(278):0.000000libinput自然滚动已启用(282):0libinput自然滚动启用默认(283):0libinput发送事件可用模式(262):1、1libinput发送事件模式启用(263):0、0libinput发送事件模式启用默认(264):0、0libinput左手启用(284):0libinputLeftHandedEnabledDefault(285):0libinputScrollMethodsAvailable(286):1,1,0libinputScrollMethodEnabled(287):1,0,0libinputScrollMethodEnabled默认(288):1,0,0libinput单击方法可用(303):1,1libinput单击方法已启用(304):1,0libinput单击方法已启用默认值(305):1,0libinput中间仿真已启用(291):0libinput中间仿真已启用默认值(292):0libinput在键入时禁用已启用(306):1libinput在键入时禁用已启用默认值(307):1设备节点(265):“/dev/input/event10"DeviceProductID(266):2,7libinputDragLockButtons(293):
