当接入触摸屏幕后,首先检测是否识别触摸屏幕设备:

bash
1
2
3
4

$ lsusb | grep -i touch

Bus 001 Device 015: ID 2a94:564d G2Touch Multi-Touch by G2TSP

可以看到识别到了一个多点触控设备。

正常情况向,触摸屏的行为:

  1. x11大部分界面都是文本选择,实际使用中发现vscode 和 chrome (firefox不支持)是支持多指触控识别。
  2. 单指触控: 鼠标的左键功能相同。
  3. 双指触控: 滑动滚动屏幕,滚动方向可以是上下左右。

安装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项目说明文档的详细且全面的介绍。

原文作者: 根叔

原始链接: https://www.learnhard.cn/linux/i3wm-%E8%A7%A6%E6%91%B8%E5%B1%8F%E9%85%8D%E7%BD%AE/

发表时间: 2024-01-21 18:32:12 +0800 CST

版权声明:本文采用知识共享署名-非商业性使用 4.0 国际许可协议进行许可