Touchégg: Linux 上触摸板/屏的多指手势
笔者之前体验过Mac OS X上的触摸板,对触摸板的工作区切换手势可谓印象深刻。而笔者所使用的笔记本搭载了支持5只手指的触摸板,因此很希望能够在此之上实现3只手指以上的手势识别和交互。
这样,一款叫 Touchégg 的软件进入了笔者视野,利用这款软件,笔者在 Linux 桌面环境上实现了接近 Mac OS X 上的工作区切换手势。
安装
笔者使用的是 Debian,其他发行版可依此参考。
安装依赖:
$ sudo apt-get install build-essential libqt4-dev libgeis-dev libx11-6 libxtst-dev
下载源代码:
$ git clone https://github.com/JoseExposito/touchegg
编译:
$ cd touchegg
$ qmake
$ make
安装:
$ sudo make install
运行
直接执行 touchegg 即可(也可以根据需要配置开机自动运行,参考 ArchWiki )
配置
用户的配置文件位于 ~/.config/touchegg/touchegg.conf,这是一个类似XML的配置文件,我们可以参考已有的配置进行设置。(也有一个图形化配置工具)
Touchégg 支持对不同的应用程序采用不同的配置,这通过 application 元素进行区分。
在 application 中配置需要识别的手势,即 gesture 元素,gesture 支持以下手势:
轻触 | 在触摸板/屏上用1到5根手指进行点击 配置文件的写法:TAP 可用方向选项:无 |
移动 | 用1到5根手指在触摸板/屏上移动 配置文件的写法:DRAG 可用方向选项:up/down/left/right |
捏合 | 用2到5根手指在触摸板/屏上捏合或松开 配置文件写法:PINCH 可用方向选项:in/out |
旋转 | 用2到5根手指在触摸板/屏上旋转 配置文件写法:ROTATE 可用方向选项:left/right |
拖动 | 在触摸板/屏上用1到5根手指轻触再移动 配置文件写法:TAP_AND_HOLD 可用方向选项:up/down/left/right |
双击 | 用1到5跟手指双击 配置文件写法:DOUBLE_TAP 可用方向选项:无 |
之后再配置每个 gesture 对应的 action:
写法 | 选项 | 说明 |
MOUSE_CLICK | BUTTON=1..9 | 模拟鼠标点击 1 – 左键 2 – 中键 3 – 右键 8 – 后退 9 – 前进 |
DRAG_AND_DROP | BUTTON=1..3 | 用相应的鼠标按键拖动 |
SCROLL | SPEED=1..10 INVERTED=true/false |
模拟垂直滚动,SPEED越大速度越快 INVERTED 表示反向滚动 |
SEND_KEYS | Key1+Key2+KeyN | 模拟组合键具体按键可在 /usr/include/X11/keysymdef.h 中查询(去掉 "XK_") |
MINIMIZE_WINDOW | - | 最小化窗口 |
MAXIMIZE_ RESTORE_WINDOW |
- | 最大化或还原窗口 |
CLOSE_WINDOW | - | 关闭窗口 |
RESIZE_WINDOW | - | 调整窗口大小,一般与捏合手势搭配 |
MOVE_WINDOW | - | 移动窗口 |
SHOW_DESKTOP | - | 第一次显示桌面,第二次恢复窗口 |
CHANGE_DESKTOP | NEXT/PREVIOUS | 切换到前一个或后一个桌面 |
CHANGE_VIEWPORT | NEXT/PREVIOUS | Changes to the next or previous viewport |
RUN_COMMAND | 需要运行的命令 | 运行命令 |
笔者使用的手势参考:
<application name="All">
<gesture type="DRAG" fingers="4" direction="LEFT">
<action type="CHANGE_DESKTOP">NEXT</action>
</gesture>
<gesture type="DRAG" fingers="4" direction="RIGHT">
<action type="CHANGE_DESKTOP">PREVIOUS</action>
</gesture>
</application>
此外,笔者对代码进行了修改,在切换工作区时不允许无限滚动。
GitHub: https://github.com/Eventide/touchegg
参考:
本文系原创,转载请注明出处: http://www.linuxstory.org/multitouch-gesture-on-linux/
gnome用户表示心情稳定
你好,安装正常(apt-get安装),配置设置好后运行程序触摸板没反应,看不到效果,网上搜了一下也有其他人有这个问题,但没查到解决方案。可能是哪里的原因呢,驱动吗?
是的。 Touchegg 依赖的是 Synaptic 的驱动程序。GNOME 默认的是好像是 libinput 。
我在centos 上无法编译成功, 运行make时:
g++ -c -pipe -Wall -W -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong –param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -fno-strict-aliasing -DQT_NO_DEBUG -DQT_SHARED -DQT_TABLET_SUPPORT -DQT_THREAD_SUPPORT -I/usr/lib64/qt-3.3/mkspecs/default -I. -I/usr/lib64/qt-3.3/include -o Config.o src/touchegg/config/Config.cpp
In file included from src/touchegg/config/Config.h:24:0,
from src/touchegg/config/Config.cpp:21:
./src/touchegg/util/Include.h:24:22: 致命错误:QtCore:没有那个文件或目录
#include
^
编译中断。
make: *** [Config.o] 错误 1
能否帮助一下?
看起来是缺少QT的头文件。
1. QT的开发库是否安装呢?
2. Touchegg对QT版本有没有要求?
请自查一下~