xfce桌面触摸校准:基于灵眸科技EASY-EAl-Orin-Nano

1. 校准说明

xfce桌面系统是一个基于X11的较为轻量级的桌面系统,优点是占用系统资源少且运行流畅,通常是debian系统的标配。当然也运行在Ubuntu系统上。

xfce通常采用xorg作为XServer,而xorg通过xinput遍历下面两个目录里面的配置,去管理所有输入设备:

复制代码
/etc/X11/xorg.conf.d/
/usr/share/X11/xorg.conf.d/

其中/usr/share/X11/xorg.conf.d/通常是给用户去管理输入设备的配置。可以通过在此目录下【增加一个配置文件】,对【指定的输入设备】进行管理。例如对某个触摸屏设备的坐标进【缩放】、【旋转】或【翻转】等转换。操作步骤如下:

首先创建一个名为99-touchscreen.conf的配置:

复制代码
sudo vi /usr/share/X11/xorg.conf.d/99-touchscreen.conf

再在里面填入如下内容:

复制代码
Section "InputClass"
    Identifier      "Touchscreen Configuration" #任意描述性名称
    MatchProduct    "ILITEK ILITEK-TP" # 使用 xinput 列表中的名称
    # 或者使用更精确的匹配规则(二选一,这个更可靠)
    # MatchIsTouchscreen "on"
    # MatchUSBID    "222a:0001"

    # 指定驱动,现在普遍使用 libinput
    Driver          "libinput"

    # 针对 libinput 的选项
    Option          "Accel Profile" "flat"    # 触摸屏禁用加速度
    Option          "CalibrationMatrix" "0.765 0.0 0.0 0.0 0.843 0.0 0.0 0.0 1.0" # 校准矩阵
EndSection

* 注意:校准矩阵必须是要9个数据。

然后重启设备:

复制代码
sync
sudo reboot

最后确认就【校准矩阵】是否生效:

复制代码
xinput list-props "ILITEK ILITEK-TP"

* 确认矩阵是否与配置文件内的配置项一致。

另外关于旋转和翻转,可以看往期文章++《xfce桌面旋转说明》++。

1.1 xinput

xinput是xorg用于管理输入设备的工具,上述例子提到的"ILITEK ILITEK-TP"设备名称,就是可以通过xinput命令查看,具体如下:

复制代码
xinput list

关于xinput的更多操作,可以通过加--help参数查看:

复制代码
xinput --help

还有一个基于xinput校准工具:xinput_calibrator。这个工具默认不自带,需要进行联网安装:

复制代码
sudo apt-get update 
sudo apt-get install xinput-calibrator -y

按照下方执行命令,启动程序:

复制代码
xinput_calibrator

根据画面提示【点击触摸屏】进行校准,校准完毕后,终端则会生成一份配置:

把这份配置拷贝到/usr/share/X11/xorg.conf.d/99-touchscreen.conf里面,把原来的替换掉也是一样的效果。

2. 一些导致触摸屏不准的其他情况

在嵌入式平台,特别容易受某些硬件配置的原因,导致触摸屏坐标不正常。

2.1 隐藏的DSI屏幕

DSI屏幕一旦在设备树上被配置,就算物理上没接DSI屏,它也会在配置中默认开启。而USB触摸屏,算上它的坐标,就会产生触摸屏不准确的问题,详情可以查看++《记录一次因隐藏的DSI屏,导致的USB触摸屏坐标异常》++

相关推荐
这个DBA有点耶22 分钟前
MySQL 8.0直方图:统计信息升级了,执行计划为什么还是选错?
数据库·mysql·代码规范
老纪的技术唠嗑局2 小时前
把 seekdb 塞进 iOS App:让混合检索嵌入手机
数据库
ClouGence3 小时前
开源数据库管理工具 CloudDM 新版本发布,支持 OpenSearch、IoTDB 数据源
数据库·开源
徐小黑ACG3 小时前
Redis-基础
数据库·redis·缓存
火山引擎开发者社区4 小时前
案例实践 | 让 Agent 读懂业务口径:ContextSearch 在广告数据查询中的实践
数据库
Thneonl5 小时前
桌宠穿透不是一行 SetWindowLong
windows·程序员
10年前端老司机5 小时前
Milvus 8种检索能力实践
数据库·python·agent
Decay__5 小时前
14_MySQL 高可用与容灾架构 —— MGR / InnoDB Cluster / Keepalived+VIP / 双主 / 读写分离 / 两地三中心
运维·数据库·sql·mysql·架构
freejackman5 小时前
【实战三】撕开脱敏盲区:深度解析 CASE WHEN 与窗口函数血缘
大数据·数据库·sql
codigger8 小时前
线上数据库连接池打满:从应急止损到架构根治的完整方案
数据库·sql·程序员