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版本有沒有要求?
請自查一下~