main
ktouch V2
适配 UOS 和麒麟 V10 的触摸屏映射校准工具。支持多屏环境下自动检测触摸屏与显示器对应关系,计算校准矩阵并写入系统,解决触摸紊乱问题。
功能
- 图形化配置 — 全屏窗口引导用户依次点击各显示器,自动建立触摸屏与显示器的映射
- 后台守护 — systemd 服务持续监控屏幕/触摸屏/USB 变化,自动触发重新校准
- 显示器管理 — 内置显示器设置工具(kdisplay),支持分辨率、旋转方向调整
- 旋转适配 — 校准矩阵自动适配屏幕旋转(横屏/竖屏/倒置)
- 签字笔支持 — 传统方式配置签字笔设备
- 现场诊断 — kscreen-debug 脚本快速排错,kscreen-log 采集日志
架构
opt/ktouch/
├── kscreen-remap-daemon # ← 主控进程(Python),systemd 服务入口
├── kscreen-setup # 配置脚本:拉起 screen_binder → 解析结果 → 写入 config
├── kscreen-remap # 单次校准:读取 config → 计算矩阵 → 写入 libinput
│
├── screen_binder # GUI:全屏窗口 + 触摸检测,输出显示器-触摸屏对应表
├── screen_ds # 显示器监控:检测分辨率/坐标变化,写入 screen.txt
├── screen_ds_once # 单次更新显示器信息(screen_ds 阉割版)
├── touch_ds # 触摸屏监控:检测矩阵变化,写入 touchmap.txt
├── touch_set # 校准计算:根据配置计算变换矩阵,写入 libinput
├── usb_ds # USB 监控:检测触摸屏插拔,写入 usbadd.txt
├── check_save # 二次确认窗口:允许用户放弃本次校准
│
├── kdisplay # 显示器设置 GUI 工具
├── display_monitor.py # 分辨率变化监控脚本
│
├── kscreen-debug # 现场排错脚本
├── kscreen-log # 日志采集脚本
├── kscreen-fix-daemon # 服务修复脚本
│
├── desktops/ # 桌面快捷方式
├── forest-light/ # 主题文件
└── config # 触摸屏配置文件
运行流程:
kscreen-remap-daemon作为 systemd 服务启动,拉起各监控进程- 高频轮询
screen.txt(显示器变化)、usbadd.txt(USB 插拔) - 低频轮询
touch_ds检测触摸矩阵变化 - 任一条件触发 →
kscreen-remap执行校准 - 用户可通过快捷方式手动触发
kscreen-setup重新配置映射
显示器设置(UOS 专属)
UOS 环境下可通过 kdisplay 调用系统显示服务(com.deepin.daemon.Display)调整显示器参数,与触摸校准联动。
kdisplay ───DBus──► com.deepin.daemon.Display
│ │
│ GUI 操作 ├── 分辨率 / 旋转 / 主屏切换
│ · 刷新检测 ├── SwitchMode 合并显示模式
│ · 设置分辨率 └── Save 持久化
│ · 旋转方向
│ · 指定主显示器 display_monitor.py
│ · 自定义分辨率 后台持续检测分辨率变化
│ 通知 kscreen-remap-daemon 重新校准
└── 应用并保存 → 重启显示服务
主要功能:
| 功能 | 说明 |
|---|---|
| 分辨率设置 | 列出当前显示器支持的 60Hz 模式,支持自定义分辨率 |
| 旋转方向 | 支持正常 / 左转90° / 右转90° / 翻转 |
| 主显示器 | 可指定任意已启用的显示器为主显示器 |
| 自定义分辨率 | 非标分辨率写入 display_config/ 目录,重启后保持 |
| 排列示意图 | 右侧画布实时展示多屏几何排列 |
自定义分辨率配置文件存放在 opt/ktouch/display_config/,格式为 <显示器名>。
用法:
# GUI 方式
/opt/ktouch/kdisplay
# 命令行快捷方式
kdisplay
仅在 UOS 环境下可用(依赖 D-Bus 服务
com.deepin.daemon.Display)。 麒麟 V10 不支持此功能。
编译
# 依赖
sudo apt install libinput-tools python3-evdev python3-pyudev
sudo apt install libevdev-dev libinput-dev libmtdev-dev libudev-dev libwacom-dev
# 编译
cd src
make # 仅编译到 src/
make install # 编译并安装到 ../opt/ktouch/
make clean
打包
# 先确保二进制已编译安装
cd src && make install
# 打包为 .deb
chmod +x build_deb.sh
./build_deb.sh # 输出到当前目录
./build_deb.sh ~/dist/ # 输出到指定目录
脚本自动从 DEBIAN/control 读取包名、版本、架构,生成 ktouch_<版本>_<架构>.deb。
安装
sudo dpkg -i ktouch_*.deb
# postinst 会自动配置 systemd 服务、快捷方式、用户组权限
# 安装完成后需重启以使 input 组生效
License
MIT
Languages
C
43.3%
Python
41.4%
Shell
9.9%
Tcl
5.1%
Makefile
0.3%