笔记本上Synaptics的触摸板比较常见,但关于其配置的资料目前来看比较混乱,主要原因是这两年来桌面环境的变化比较大,搜索出来的结果是不同时期的人的解决办法,往往五花八门让人无所适从,如果想完全控制触摸板,可能需要了解以下的事情:

触摸板是输入设备,首先需要Xorg的支持,所以/etc/X11/xorg.conf里面会有synaptics的配置;

大约08年开始,X11依赖hal来挂载硬件驱动,hal读取/etc/hal/fdi/policy里面的配置,所以会有写hal的配置文件的配置方法;

10年3月,Xorg发布了1.8.0版,不再依赖hal而实现动态加载驱动,依然使用xorg.conf配置驱动参数,还新引入/etc/X11/xorg.conf.d目录里面的配置文件;

Xorg的synaptics驱动带有一个配置程序,synclient可对驱动参数动态设置;

各个桌面环境,如Gnome、KDE默认自带了不同程度对触摸板设置的支持;

gsynaptics设置程序提供比桌面环境自带的多一些的设置选项,但是这个项目即将面临被荒废;Gnome有个子项目GPointingDeviceSettings,跟gsynaptics功能基本一致但还未被收录到Gnome桌面的默认组件。

在网上搜到的资料,包括各大发行版的Wiki,一般都只会覆盖以上其中一两点的配置描述,而且很多都过时。

从上面这些很“历史性”的事情可以概括出的事实:

使用xorg.conf、synclient来配置触摸板最具体的参数,这点是不会变的;

HAL作为一个过渡性组件,对其配置的意义不太大;

Gnome等桌面环境启动后会重新设定一些参数,可能会重载xorg.conf的设置参数;

gsynaptics提供了一个常驻进程,在进入桌面时候启动,它的配置参数记录在gconf,只要其进程在运行,就会重载所有触摸板的配置参数;

没有一个图形界面的设置工具能提供所有的触摸板高级特性特性设置支持。

下面列举一些触摸板的高级特性:

四边角按钮

触摸板被分布成类似九宫格的区域,除了中间的矩形区域面积较大,四个边角可以设置为一个按钮,比如最常用就是点击右下角就相当于右键,左上角为中键(个人 喜好)。

涉及参数:(2为右键,3为中键)

RTCornerButton=2

RBCornerButton=0

LTCornerButton=3

LBCornerButton=0

多点触摸

如果是硬件原生支持多点触摸的,在Gnome的触摸板设置内能够直接打开双指滚动的选项;

模拟多点触摸

非多点触摸的触摸板也可以实现双指滚动,它通过触摸板的感应宽度来判断,即两指的在触摸板的跨度比单指大;但是这需要设置驱动参数:

EmulateTwoFingerMinZ=50 #模拟双指感应压力

EmulateTwoFingerMinW=6 #模拟双指感应跨度

VertTwoFingerScroll=1 #使用双指垂直滚动

HorizTwoFingerScroll=1 #使用双指水平滚动

VertScrollDelta=75 #垂直滚动速度

HorizScrollDelta=100 #水平滚动速度

这些参数很可能需要用户自己调试出最适合的组合(如何设置调试请看本文后介绍),以上数值仅供参考。

多指按键

即在触摸板任意地方多指同敲就是相当于某击键,涉及参数:

TapButton1=1 #一指,左键,默认

TapButton2=3 #两指,右键;

TapButton3=0 #三指,仅适合硬件支持多触点的触摸板,否则没法感应三指同

圆周滚动

即可在某个边沿(通常右)开始手指在触摸板按顺时/逆时针圆周划动,即产生鼠标滚轮滚动作用,通常效率比仅仅使用右侧划动区上下滚动高,特别浏览长网页时(本设置在gsynaptics/GPointingDeviceSettings里面可以直观地设置)。涉及参数:

CircularScrolling=1 #打开圆周滚动

CircScrollTrigger=3 #右边沿,除了0代表任意边沿,1~8分别代表从顶开始顺时针的九宫格外围8个位置。

想使用这些高级特征,一个方法是就像多数搜索出来的资料,修改xorg.conf,但如前文说会有弊端,被桌面环境重载,所以我们最好还是使用synaptics驱动自带的小工具synclient。synclient接受k=v的参数,而实时修改X11对触摸板的驱动,也很方便调试,就是运行synclient TapButton2=3,应该马上就有双指右键的效果了。所以,把所有需要设置的参数写成一个脚本文件,让进入桌面时候启动synclient来设置,似乎是目前最方便好的方法:

1

2

3

4

5

6

7

8

9

10

11

#!/bin/bash

export DISPLAY=:0.0

synclient EmulateTwoFingerMinZ=50 EmulateTwoFingerMinW=6 VertTwoFingerScroll=1 HorizTwoFingerScroll=1 VertScrollDelta=75 HorizScrollDelta=100 ;

把代码保存成touchpad_args.sh,chmod +x加上执行位,放倒任意地方,加入到System-Preferance-Startup Application内,即可!

关于synclient的另外一个小功能是可以实时查看触摸板的感应参数,运行synclient -m 100即每100毫秒读取一次触摸板的数据并打印,所以如果感觉触摸板操作不够灵敏,肯定是那些参数数值有些不合理,可以借助这个功能(使用这个功能需要打开X11的synaptics的SHMConfig设置)。其运行结果如下:

time x y z f w l r u d m multi gl gm gr gdx gdy

0.000 1 5855 0 0 0 0 0 0 0 0 00000000 0 0 0 0 0

1.465 2562 2450 10 1 5 0 0 0 0 0 00000000 0 0 0 0 0

....

其中主要参数:x,y是水平竖直值,z指垂直压力,f是手指数,非硬件支持多指的只会0或1,w指感应跨度。这些就是对应上述的参数,如Z就是EmulateTwoFingerMinZ的Z,如果设置过大是不会反应的。

另外有人不喜欢触摸板,设置touchpadoff=1即可关闭触摸板的感应;Gnome的触摸板设置里面有一个选项,键盘打字时智能关闭触摸板,个人感觉比较有效,也就没做更多设置了。

linux+synaptics+驱动程序,Linux下Synaptics笔记本触摸板的配置相关推荐

  1. linux触摸板设置密码程序6,Linux下Synaptics笔记本触摸板的配置

    笔记本上Synaptics的触摸板比较常见,但关于其配置的资料目前来看比较混乱,主要原因是这两年来桌面环境的变化比较大,搜索出来的结果是不同时期的人的解决办法,往往五花八门让人无所适从,如果想完全控制 ...

  2. Linux下Synaptics笔记本触摸板的配置

    笔记本上Synaptics的触摸板比较常见,但关于其配置的资料目前来看比较混乱,主要原因是这两年来桌面环境的变化比较大,搜索出来的结果是不同时期的人的解决办法,往往五花八门让人无所适从,如果想完全控制 ...

  3. ubuntu下关闭笔记本触摸板

    关闭笔记本触摸板 : sudo rmmod psmouse 恢复: sudo modprobe psmouse

  4. 双系统linux触摸板不能用,windows系统与ubuntu双系统导致笔记本触摸板失灵的解决办法(非输入代码)...

    先说一下我现在的笔记本使用的系统,windows10 64位+ubuntu14.04 64位. 这几天把ubuntu装好后本来毫无问题的,用的飞起-可是昨天不知道什么原因,触摸板突然失灵了,插上鼠标可 ...

  5. Linux下Ubuntu关闭触摸板(TinkPad)

    Ubuntu下如何关闭触摸板(TinkPad) 有以下两种方法: 第一种: 1 sudo rmmod psmouse    这个是禁用的 2 sudo modprobe psmouse 这个是启用的

  6. Linux(ubuntu)下安装anaconda(64位)并配置jupyter notebook远程访问

    Linux(ubuntu)下安装anaconda(64位)并配置jupyter notebook远程访问 Anaconda指的是一个开源的Python发行版本,其包含了conda.Python等180 ...

  7. Ubuntu下开机禁用笔记本触摸板

    Ubuntu下开机禁用笔记本触摸板 https://blog.csdn.net/kellncy/article/details/53573526

  8. ubuntu下开启/禁用笔记本触摸板

    操作系统环境:ubuntu16.04: 操作方式:命令行: 禁用笔记本触摸板:sudo rmmod psmouse: 开启笔记本触摸板:sudo modprobe psmouse:

  9. ubuntu下联想y400笔记本触摸板失灵解决办法

    共需要三步: 第一步 在终端输入以下代码sudo modprobe -r psmousesudo modprobe psmouse上面代码作用是重新加载相应模块 (至此,如果触摸板还不管用,请尝试第二 ...

最新文章

  1. mysql 存储引擎 介绍
  2. 【基础算法复习】01背包问题(一)
  3. J-link v8固件修复
  4. 使用Windbg解析dump文件
  5. MongoDB命令--自用记录
  6. [NOI2015]软件包管理器
  7. python 翻译库本地库_利用python爬取并翻译GEO数据库
  8. python自动化办公-Python自动化办公室(1),python,一
  9. Python入门--元组的创建,(),tuple()
  10. Java基础2一基础语法
  11. 处理 Archlinux 报错
  12. 量化投资学习——统计套利综述
  13. 计算机应用基础课件教学大赛,全国“XX杯”说课大赛计算机应用基础类优秀作品:设置IP地址教学课件.ppt...
  14. KEIL的下载图标是灰色的怎么办
  15. 小学计算机说课稿,小学计算机说课稿_相关文章专题_写写帮文库
  16. Word删除单独页页眉与分节处理
  17. 利用LSTM对股价进行预测并可视化
  18. [译文]优雅的现代JavaScript设计模式: 冰冻工厂
  19. 中信建投计算机行业周报
  20. 前端学习第三站——Vue2基础篇

热门文章

  1. 微信小程序 报错errcode: 40029, errmsg: “invalid code
  2. 记录微信小程序获取手机号报40029错误问题
  3. php 获取指定日期所在月份的最后一天
  4. 输入底面半径和高,求圆柱体的表面积
  5. 「干货」12.5米数字高程DEM专题图制作教程
  6. 单片机定时器中断倒计时c语言,我用定时器中断控制倒计时30秒。程序不报错,但是显示一直停在30..请问好友们,帮我看看问题出在哪里?...
  7. Java 小练习(简单)—合集
  8. 第2章 人机交互的相关学科
  9. 60.【Java 进阶】
  10. dac单缓冲方式C语言设计,课程设计基于DAC0832单缓冲工作波形发生器.doc