开源软件

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越大速度越快
I
NVERTED 表示反向滚动
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

参考:

  1. GitHub Wiki
  2. ArchWiki

本文系原创,转载请注明出处: http://www.linuxstory.org/multitouch-gesture-on-linux/

对这篇文章感觉如何?

太棒了
0
不错
0
爱死了
2
不太好
0
感觉很糟
0

You may also like

5 Comments

  1. gnome用户表示心情稳定

  2. 你好,安装正常(apt-get安装),配置设置好后运行程序触摸板没反应,看不到效果,网上搜了一下也有其他人有这个问题,但没查到解决方案。可能是哪里的原因呢,驱动吗?

    1. 是的。 Touchegg 依赖的是 Synaptic 的驱动程序。GNOME 默认的是好像是 libinput 。

  3. 我在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

    能否帮助一下?

    1. 看起来是缺少QT的头文件。
      1. QT的开发库是否安装呢?
      2. Touchegg对QT版本有没有要求?
      请自查一下~

Leave a reply

您的电子邮箱地址不会被公开。 必填项已用 * 标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据

More in:开源软件

开源软件

在 Linux 终端中管理您的密码

在信息时代,我们的所使用的密码只会越来越多,你是否遇到过密码太多而经常遗忘?所以应该如何高效地管理这些密码?本篇文章主要讲述了在我们拥有大量的密码时,在Linux终端下,使用 Pass 管理系统高效地管理密码,并为我们提供了详细的操作步骤,使我们更加快速熟悉地掌握如何使用 Pass,减少我们自己在以后的使用中的可能遇到的烦恼。
开源软件

用 Scribus 来进行排版吧!

想不想制作一些亲手设计的小册子呢?来使用专业级的开源软件 Scribus 快捷排版吧!这款应用可以让你轻松地把创意落地成可打印的文档,无论在家、办公室还是专业的印刷厂都可以使用。在过程中也不会用到任何剪刀、胶水,完美契合不善动手的人。
开源软件

使用 pdftk-java 来编辑 PDF 吧!

在用命令行处理大量 PDF 文件时,手动操作通常不是一个好的选择。这时候可以选择使用 pdftk-java 工具,配合上对应批量操作的 Makefile 文件,能让你事半功倍。
开源软件

来点更高雅的!用 Linux Sampler 演奏数字管弦乐

一直以来,音乐合成器都在尝试模拟真实的乐器。然而在技术的发展中,合成音乐家们发现如果想真正地捕获到乐器的美感,只能去录制他们的声音,再通过技术合成手段来获得想要的音乐。如果你想要为自己的游戏或者其他应用来配上一段优美的音乐,聘请管弦乐队显然是非常昂贵的。但通过 Linux Sampler 这个开源程序,或者再加上一个 MIDI 键盘,也是可以实现一段成功的演奏的。