kushidoutouch是我个人编写的基于bash脚本的多显示器多触摸屏映射软件,本文将会详细介绍它的使用方法和相关信息。
下载地址:https://www.small09.top/d/kushidouTouch-1.1.4_all.deb
关于KushidouTouch | About
这是什么? | What?
kushidoutouch是一款基于bash脚本的,触摸屏+多显示器的修复软件。当你有触摸屏设备且显示器不止一块,或者不知道如何进行触摸映射时,就可以使用这个软件。仅需要一个鼠标,你就可以配置好你的触摸位置。
为什么要做这个? | Why?
Linux原生对多触摸屏支持不是很好,默认是将一个触摸设备映射到全部的屏幕上。我习惯于使用xinput
指令+自启动脚本进行屏幕映射,但是我的同事们都没有接触过Linux,在进行信创项目开发时,他们总是要为了触摸屏的问题来问我,我一遍遍不厌其烦的为他们指导、演示,而过了几天他们又来问我相同的问题。
它是怎么实现的? | How?
本质上讲还是xinput
工具,我封装了一个对话框,可以自动筛选出显示器和触摸设备,用户通过点选设备按钮可以形成绑定关系并生成一个配置文件,之后通过手动或自动运行的方式进行映射。
使用方法 | Manual
安装 | Install
kushidoutouch依赖xinput
、zenity
和python3
,由于无法使用apt包管理器,您需要手动安装这些依赖软件。此外为了实现触摸屏usb插拔后自动恢复映射,您可以额外安装python3-pyudev
,或者使用pip3
安装pyudev
。
以上依赖都安装完成后,即可使用dpkg -i *.deb
安装本软件。部分操作系统使用双击方式安装时,会因为没有前面而安装失败。
配置 | Config
双击桌面上的“配置触摸屏”图标(如果桌面上没有,可以在开始菜单或者所有程序中寻找,也可以执行kscreen-config
指令),在弹出的第一个对话框中选择显示器,第二层对话框中选择触摸设备。选择完成后触摸映射即时生效,并返回第一级菜单。请用手指点击屏幕或者与窗口交互,判断关系是否正确。正确的话可以配置下一个设备,如果不正确,请重复上述步骤尝试其他触摸设备。
当所有设备都配置完成后,再点击退出。切勿提前退出。切勿反复打开配置程序后仅配置一两条就退出。现在配置文件采取的是覆盖策略,仅最后一次配置的会生效。
使用 | Use
软件有三种开启映射的方式,除了配置时的即时映射外,有开机自启动、触摸设备插拔自动映射、手动映射。
软件无法检测显示器的更改,如果显示器经历了插拔,请双击桌面快捷方式进行映射(也可以在开始菜单或所有程序中找到;也可以执行kscreen-remap 3
指令)。
插拔自动映射需要pyudev
的支持,参考前文进行安装。
如果更换过设备、更换过USB口、显示器更换过接口,请重新进行配置。软件无法处理这些更改。
技术细节 | Details
实现原理 | Principle
本程序除了一个从银河麒麟操作系统中模仿出来的python脚本外,其他都基于bash脚本进行开发。使用grep、cut指令相结合分析出使用的屏幕和常见触摸输入设备,使用zenity创建对话框与用户交互。所有配置文件都写在config文件中,对于触摸屏,因为遇到过屏幕名称、VID:PID等识别符号都完全一致的情况,所以额外加了设备逻辑接口地址来进行研判,只有四个项目都对上,条目才起效。
已知问题 | BUGs
- 由于加入了USB接口地址判断,对于任何电脑,只要更换了USB位置,触摸配置就失效了
- 目前逻辑下打开配置程序就会删除原有配置,必须从头配置到结束
- 无法识别到屏幕变化
后续计划 | TODO
- 收集全部触摸信息后综合判断记录信息的量,比如完全不同的设备仅记录名称,名称相同额外记录VID:PID,都相同再记录USB接口信息,避免所有设备都使用庞大的config文件。
- 打开配置软件时不删除配置文件,用户启动时选择覆盖模式、管理模式或者增量模式。仅覆盖模式、完成配置后再删除替换。
- 添加配置文件条目管理功能,可以删除指定行。实现方式是复制配置文件,对复制后的进行修改,用户点击保存后整理临时文件内容,再覆盖原有文件。
- 增加屏幕变化识别功能。该功能将置于python脚本中,实现方法待定。
- 将python3移除必要依赖,写入建议安装。
- 1-3、5条计划1.2中更新,4暂无实现时间计划。