当接入触摸屏幕后,首先检测是否识别触摸屏幕设备:
bash
1
2
3
4
|
$ lsusb | grep -i touch
Bus 001 Device 015: ID 2a94:564d G2Touch Multi-Touch by G2TSP
|
可以看到识别到了一个多点触控设备。
正常情况向,触摸屏的行为:
- x11大部分界面都是文本选择,实际使用中发现vscode 和 chrome (firefox不支持)是支持多指触控识别。
- 单指触控: 鼠标的左键功能相同。
- 双指触控: 滑动滚动屏幕,滚动方向可以是上下左右。
安装touchegg
安装包
触摸屏幕TouchScreen-手势识别#
Libinput的配置文档
多屏幕的触摸屏映射配置#
目的:让触摸屏只适用特定屏幕区域。参考链接
查看屏幕信息:
bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| $ xrandr
Screen 0: minimum 8 x 8, current 3840 x 4320, maximum 32767 x 32767
DVI-D-0 disconnected (normal left inverted right x axis y axis)
HDMI-0 connected 3840x2160+0+2160 (normal left inverted right x axis y axis) 344mm x 195mm
1920x1080 60.00*+ 120.00 100.00 60.00 59.94 50.00 29.97 25.00 23.98
1440x900 59.89
...
DP-0 connected primary 3840x2160+0+0 (normal left inverted right x axis y axis) 597mm x 336mm
3840x2160 60.00*+ 59.94 50.00 29.98 29.97 25.00 23.98
2560x1440 59.95
1920x2160 59.99
1920x1080 60.00 59.94 50.00
...
DP-1 disconnected (normal left inverted right x axis y axis)
|
两个显示屏幕输出,分别为 触摸屏(HDMI-0) 和 普通4K屏幕(DP-0) ,默认情况下,触摸屏的区域为两个屏幕显示区域,而我们需要将触摸屏输入映射到 HDMI-0 输出区域,这样触摸位置就与触摸屏显示内容一致了。
接下来,查看触摸输入的名称信息:
bash
1
2
3
4
5
6
7
8
9
10
11
12
13
|
$ xinput --list
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ G2Touch Multi-Touch by G2TSP id=20 [slave pointer (2)]
⎣ Virtual core keyboard id=3 [master keyboard (2)]
↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)]
↳ Hanvon Ugee UGEE S1060W Keyboard id=15 [slave keyboard (3)]
↳ Hanvon Ugee UGEE S1060W id=16 [slave keyboard (3)]
↳ SINO WEALTH 㥋〸删䉇䬠祥潢牡 id=17 [slave keyboard (3)]
↳ Eee PC WMI hotkeys id=21 [slave keyboard (3)]
↳ 2.4G Mouse Consumer Control id=22 [slave keyboard (3)]
↳ SINO WEALTH 㥋〸删䉇䬠祥潢牡 id=23 [slave keyboard (3)]
|
触摸屏输入的名称为 “G2Touch Multi-Touch by G2TSP” ,执行下面命令将触摸屏输入映射到 HDMI-0
屏幕输出区域:
bash
1
| xinput --map-to-output "G2Touch Multi-Touch by G2TSP" HDMI-0
|
如果希望每次系统启动时自动执行上面的映射,可以在~/.xinitrc
文件中添加上面命令,或者使用xrandr-watch-git
服务监控屏幕变化事件,将上面命令添加到~/.xrandr-changed
文件.
如何使用xrandr-watch-git
这里不赘述,请参考xrand-watcher项目说明文档的详细且全面的介绍。