更新Readme
This commit is contained in:
@@ -46,3 +46,5 @@ check_save
|
|||||||
|
|
||||||
.codewhale
|
.codewhale
|
||||||
.mimocode
|
.mimocode
|
||||||
|
|
||||||
|
*.deb
|
||||||
@@ -1,7 +1,129 @@
|
|||||||
# ktouchV2
|
# ktouch V2
|
||||||
|
|
||||||
<<<<<<< HEAD
|
适配 UOS 和麒麟 V10 的触摸屏映射校准工具。支持多屏环境下自动检测触摸屏与显示器对应关系,计算校准矩阵并写入系统,解决触摸紊乱问题。
|
||||||
适配UOS和银河麒麟的触摸屏设置工具。
|
|
||||||
=======
|
## 功能
|
||||||
适配UOS和麒麟的触摸屏校准设置工具。
|
|
||||||
>>>>>>> 07cb496a46dea18227a9ad14f0f91254054d9285
|
- **图形化配置** — 全屏窗口引导用户依次点击各显示器,自动建立触摸屏与显示器的映射
|
||||||
|
- **后台守护** — 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 # 触摸屏配置文件
|
||||||
|
```
|
||||||
|
|
||||||
|
**运行流程:**
|
||||||
|
|
||||||
|
1. `kscreen-remap-daemon` 作为 systemd 服务启动,拉起各监控进程
|
||||||
|
2. 高频轮询 `screen.txt`(显示器变化)、`usbadd.txt`(USB 插拔)
|
||||||
|
3. 低频轮询 `touch_ds` 检测触摸矩阵变化
|
||||||
|
4. 任一条件触发 → `kscreen-remap` 执行校准
|
||||||
|
5. 用户可通过快捷方式手动触发 `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/`,格式为 `<显示器名>`。
|
||||||
|
|
||||||
|
**用法:**
|
||||||
|
```bash
|
||||||
|
# GUI 方式
|
||||||
|
/opt/ktouch/kdisplay
|
||||||
|
|
||||||
|
# 命令行快捷方式
|
||||||
|
kdisplay
|
||||||
|
```
|
||||||
|
|
||||||
|
> 仅在 UOS 环境下可用(依赖 D-Bus 服务 `com.deepin.daemon.Display`)。
|
||||||
|
> 麒麟 V10 不支持此功能。
|
||||||
|
|
||||||
|
## 编译
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 依赖
|
||||||
|
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
|
||||||
|
```
|
||||||
|
|
||||||
|
## 打包
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 先确保二进制已编译安装
|
||||||
|
cd src && make install
|
||||||
|
|
||||||
|
# 打包为 .deb
|
||||||
|
chmod +x build_deb.sh
|
||||||
|
./build_deb.sh # 输出到当前目录
|
||||||
|
./build_deb.sh ~/dist/ # 输出到指定目录
|
||||||
|
```
|
||||||
|
|
||||||
|
脚本自动从 `DEBIAN/control` 读取包名、版本、架构,生成 `ktouch_<版本>_<架构>.deb`。
|
||||||
|
|
||||||
|
## 安装
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo dpkg -i ktouch_*.deb
|
||||||
|
# postinst 会自动配置 systemd 服务、快捷方式、用户组权限
|
||||||
|
# 安装完成后需重启以使 input 组生效
|
||||||
|
```
|
||||||
|
|
||||||
|
## License
|
||||||
|
|
||||||
|
MIT
|
||||||
|
|||||||
+3
-3
@@ -78,9 +78,9 @@ done
|
|||||||
# display_monitor.py
|
# display_monitor.py
|
||||||
# )
|
# )
|
||||||
|
|
||||||
for exe in "${EXE_LIST[@]}"; do
|
# for exe in "${EXE_LIST[@]}"; do
|
||||||
[ -f "$BUILD_DIR/opt/ktouch/$exe" ] && chmod 755 "$BUILD_DIR/opt/ktouch/$exe"
|
# [ -f "$BUILD_DIR/opt/ktouch/$exe" ] && chmod 755 "$BUILD_DIR/opt/ktouch/$exe"
|
||||||
done
|
# done
|
||||||
|
|
||||||
# usr 下文档 644,目录 755
|
# usr 下文档 644,目录 755
|
||||||
find "$BUILD_DIR/usr" -type d -exec chmod 755 {} \;
|
find "$BUILD_DIR/usr" -type d -exec chmod 755 {} \;
|
||||||
|
|||||||
Reference in New Issue
Block a user