Lxde添加触摸板双击功能、防误触

前言

本文链接:https://www.cnblogs.com/hellxz/p/linux_touchpad_settings.html

这时简单记录一下最近两天折腾Lxde的触摸板功能的设置,留待日后查阅

本文主要记录一下APT系Linux开启Lxde触摸板双击功能,以及一些关于触摸板防误触方面的设置

PS: Arch Linux可以直接参考官方wiki

解决Lxde没有双击功能

安装驱动包

sudo apt-get install xserver-xorg-input-synaptics

复制 /usr/share/X11/xorg.conf.d/etc/X11

sudo cp -R /usr/share/X11/xorg.conf.d /etc/X11/.
cd /etc/X11/xorg.conf.d
sudo vim 10-edev.conf #添加edev.conf配置文件,添加自定义配置

新建/usr/share/X11/xorg.conf.d/10-edev.conf

sudo vim /usr/share/X11/xorg.conf.d/10-edev.conf #添加edev.conf配置文件,添加自定义配置

文件内容如下:

# To overwrite 70-synaptics.conf default configuration.
# The Options are useful for diy
Section "InputClass"
Identifier "evdev touchpad catchall"
MatchIsTouchpad "on"
MatchDevicePath "/dev/input/event*"
Driver "synaptics"
Option "TapButton1" "1"
Option "TapButton2" "2"
Option "TapButton3" "3"
EndSection
# if touchpad has duplicates, will ignore operation what you have done with touchpad.
Section "InputClass"
Identifier "touchpad ignore duplicates"
MatchIsTouchpad "on"
MatchOS "Linux"
MatchDevicePath "/dev/input/mouse*"
Option "Ignore" "on"
EndSection

这里开启单击、双击、三指的操作功能,如果不想再使用某一功能,可以设置其值为0或移除此Option

重启系统

重启系统后,我们会发现双指操作可以正常使用了,但是我发现打字的时候,大拇指会碰到掌托,鼠标乱跑,基本没法正常打字,这样也是不合需要的。所有有了下边的打字等场景禁用触摸板的记录

打字时禁用触摸板

这里有三种方案,其一是开启手掌探测,其二是打字时禁用触摸板,其三是直接禁用触摸板(提供切换脚本)

查看当前触摸板设置可以参考synclient -l

开启手掌探测(Palm Detect)

以下为测试数据,可以使用如下参数在本次会话中测试,如果一切正常且满足需要,可以添加到自启脚本中

synclient PalmDetect=1 #开启手掌探测
synclient PalmMinWidth=8 # 手掌最小宽度
synclient PalmMinZ=100 #手掌用力最小力度(z坐标轴方向)

以上的PalmMinWidthPalmMinZ的数值可以通过evtest软件进行测试,使用方法如下图

最后我们得到的参数,也可以添加到/usr/share/X11/xorg.conf.d/10-edev.conf中,接续在Option下方

例如刚才的配置应写为:

Option "PalmDetect" "1"
Option "PalmMinWidth" "8"
Option "PalmMinZ" "100"

打字时禁用触摸板

syndaemon -i 2 -d #2s是暂停时间,更多详情参考syndaemon -h

可以添加到自启(auto_start)中,禁用时间可以按需调整,如果不写-m指定毫秒数默认200ms,-i指定秒数,默认2s

禁用触摸板

实现思路是通过脚本去切换当前禁用触摸板的状态

创建shell脚本

sudo vim /usr/local/bin/touchpad_toggle.sh

内容如下:

#!/bin/bash
ts=`synclient -l|grep TouchpadOff`
ts=${ts#*= }
if [ "$ts" == 0 ]; then
synclient TouchpadOff=1
else
synclient TouchpadOff=0
fi

当然脚本还可以简写为:

#!/bin/bash
synclient TouchpadOff=$(synclient -l | grep -c 'TouchpadOff.*=.*0')

引用文章:

Arch Linux Wiki

Ubuntu Wiki

Linux公社

posted @   东北小狐狸  阅读(1716)  评论(0编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
历史上的今天:
2018-10-04 〖C语言学习笔记 〗(一) HelloWorld
2018-10-04 〖C语言学习笔记 〗(二) 数据类型
2018-10-04 「学习笔记」进制转换
点击右上角即可分享
微信分享提示