From 2dcac486237aa42f473c509a68623a66e1313f51 Mon Sep 17 00:00:00 2001 From: tang1219 Date: Tue, 16 Jun 2026 14:51:34 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E6=89=93=E5=8C=85=E6=B5=81?= =?UTF-8?q?=E7=A8=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- DEBIAN/control | 2 +- build_deb.sh | 104 ++++++++++++++++++++++++++++++++++++++++ changelog | 16 +++++++ opt/ktouch/src/usb_ds.c | 2 +- 4 files changed, 122 insertions(+), 2 deletions(-) create mode 100644 build_deb.sh create mode 100644 changelog diff --git a/DEBIAN/control b/DEBIAN/control index ef8e44e..0cd0fc7 100644 --- a/DEBIAN/control +++ b/DEBIAN/control @@ -1,5 +1,5 @@ Package: ktouch -Version: 2.0 +Version: 2.1 Architecture: arm64 Maintainer: Kushidou Depends: xinput, python3 diff --git a/build_deb.sh b/build_deb.sh new file mode 100644 index 0000000..0e4610e --- /dev/null +++ b/build_deb.sh @@ -0,0 +1,104 @@ +#!/bin/bash +set -e + +# ============ 打包 ktouch deb ============ +# 用法: ./build_deb.sh [输出目录] +# 输出: ktouch_<版本>_<架构>.deb + +SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" +OUTPUT_DIR="${1:-$(pwd)}" +BUILD_DIR="/tmp/ktouch_deb_build" + +# 从 control 读取版本和架构 +CONTROL_FILE="$SCRIPT_DIR/DEBIAN/control" +if [ ! -f "$CONTROL_FILE" ]; then + echo "错误: 找不到 $CONTROL_FILE" + exit 1 +fi + +VERSION=$(grep -i "^Version:" "$CONTROL_FILE" | awk '{print $2}') +ARCH=$(grep -i "^Architecture:" "$CONTROL_FILE" | awk '{print $2}') +PACKAGE=$(grep -i "^Package:" "$CONTROL_FILE" | awk '{print $2}') +DEB_FILE="${PACKAGE}_${VERSION}_${ARCH}.deb" + +echo "============================================" +echo " 打包 $PACKAGE v$VERSION ($ARCH)" +echo "============================================" + +# 1. 清理旧构建目录 +if [ -d "$BUILD_DIR" ]; then + echo "[1/5] 清理旧构建目录..." + rm -rf "$BUILD_DIR" +fi + +# 2. 创建目录结构并拷贝文件 +echo "[2/5] 创建构建目录并拷贝文件..." +mkdir -p "$BUILD_DIR/DEBIAN" +mkdir -p "$BUILD_DIR/opt" +mkdir -p "$BUILD_DIR/usr/share/doc/ktouch" + +cp -r "$SCRIPT_DIR/DEBIAN/"* "$BUILD_DIR/DEBIAN/" +cp -r "$SCRIPT_DIR/opt/ktouch" "$BUILD_DIR/opt/" + +[ -f "$SCRIPT_DIR/changelog" ] && cp "$SCRIPT_DIR/changelog" "$BUILD_DIR/usr/share/doc/ktouch/changelog" +[ -f "$SCRIPT_DIR/LICENSE" ] && cp "$SCRIPT_DIR/LICENSE" "$BUILD_DIR/usr/share/doc/ktouch/copyright" + +# 3. 设置权限 +echo "[3/5] 设置文件权限..." + +chmod 755 "$BUILD_DIR/DEBIAN" +chmod 644 "$BUILD_DIR/DEBIAN/control" + +for script in preinst postinst prerm postrm; do + [ -f "$BUILD_DIR/DEBIAN/$script" ] && chmod 755 "$BUILD_DIR/DEBIAN/$script" +done + +# # opt 下所有文件默认 644,目录 755 +# find "$BUILD_DIR/opt" -type d -exec chmod 755 {} \; +# find "$BUILD_DIR/opt" -type f -exec chmod 644 {} \; + +# # 给可执行程序设置 755 +# EXE_LIST=( +# check_save +# screen_binder +# screen_ds +# screen_ds_once +# touch_ds +# touch_set +# usb_ds +# kdisplay +# kscreen-remap +# kscreen-remap-daemon +# kscreen-setup +# kscreen-debug +# kscreen-log +# kscreen-fix-daemon +# display_monitor.py +# ) + +# for exe in "${EXE_LIST[@]}"; do +# [ -f "$BUILD_DIR/opt/ktouch/$exe" ] && chmod 755 "$BUILD_DIR/opt/ktouch/$exe" +# done + +# usr 下文档 644,目录 755 +find "$BUILD_DIR/usr" -type d -exec chmod 755 {} \; +find "$BUILD_DIR/usr" -type f -exec chmod 644 {} \; + +# 4. dpkg 打包 +echo "[4/5] 执行 dpkg-deb 打包..." +dpkg-deb -b "$BUILD_DIR" "$DEB_FILE" + +# 5. 清理 +echo "[5/5] 清理临时目录..." +rm -rf "$BUILD_DIR" + +# 移动到输出目录 +if [ "$(realpath "$OUTPUT_DIR")" != "$(realpath "$(pwd)")" ]; then + mv "$DEB_FILE" "$OUTPUT_DIR/" +fi + +echo "" +echo "============================================" +echo " 打包完成: $OUTPUT_DIR/$DEB_FILE" +echo " 大小: $(du -h "$OUTPUT_DIR/$DEB_FILE" | cut -f1)" +echo "============================================" diff --git a/changelog b/changelog new file mode 100644 index 0000000..8efb20e --- /dev/null +++ b/changelog @@ -0,0 +1,16 @@ +ktouch (2.1) unstable; urgency=medium + + * 适配只支持鼠标事件的屏幕 + * 优化开发架构,发布的程序不再包含源代码 + + -- Kushidou Tue, 16 Jun 2026 14:00:00 +0800 + +ktouch (2.0) unstable; urgency=medium + + * 重新设计交互流程,更傻瓜易用 + * 重构程序架构,采用更多原生可执行程序 + * 为UOS添加显示器分辨率和位置设置工具 + * 程序本体适配UOS和麒麟v10 + + -- Kushidou Mon, 25 Sep 2025 10:00:00 +0800 + diff --git a/opt/ktouch/src/usb_ds.c b/opt/ktouch/src/usb_ds.c index c25a520..9c4c4b9 100644 --- a/opt/ktouch/src/usb_ds.c +++ b/opt/ktouch/src/usb_ds.c @@ -16,7 +16,7 @@ #define DEFAULT_POLL_INTERVAL 5 // 默认轮询间隔为5秒 #define MAX_RETRY_ATTEMPTS 3 // 最大重试次数 #define RETRY_DELAY 1 // 重试延迟(秒) -#define COOLDOWN_SECONDS 30 // 触摸屏检测冷却时间(秒) +#define COOLDOWN_SECONDS 7 // 触摸屏检测冷却时间(秒) FILE *log_file = NULL; // 日志文件指针 // 函数提前声明