v0.3.1
Bug Fixes
ποΈ Light-touch trackpad drawing (ABS_MT_TRACKING_ID)
The engine now tracks ABS_MT_TRACKING_ID (finger-on-surface) instead of requiring BTN_TOUCH (physical click). This means you can draw on your laptop's trackpad with a light touch β no click needed. Many modern trackpads only emit ABS_MT_TRACKING_ID for surface contact and reserve BTN_TOUCH for physical clicks.
β¨οΈ Ctrl+Space IME switch no longer conflicts
Removed the hardcoded Super+space capture. IBus trigger keys are user-configurable via ibus-setup / dconf, so the engine no longer intercepts them. Previously, pressing Ctrl+Space (or the configured IBus trigger) would be eaten by the engine instead of switching the input method.
π udev ATTRS parent-chain walk
The udev rule now walks the parent device chain to match ATTRS{name}, improving compatibility with trackpads where the name property lives on a parent device node (e.g. I2C-hid buses).
Packaging
π¦ Debian / Ubuntu (.deb)
python3-venvdependency added- Post-install (
postinst): automatically downloads the PP-OCRv6 ONNX model and character dictionary, creates a Python virtual environment with onnxruntime, and installs a wrapper script as the engine binary - Model path:
IBUS_HANDWRITE_PPOCR_MODELenv var supportstiny,small(default),medium
π¦ Fedora / openSUSE (.rpm)
- Fully rewritten
%postsection β same logic as debian postinst: model download, venv creation, wrapper script - Engine binary installed to
/usr/local/share/ibus-handwrite-chinese/(not/usr/local/bin/) - Wrapper at
/usr/local/bin/ibus-engine-handwrite-chineseroutes through the venv for onnxruntime - Dependencies synced with debian control (removed
python3-venvfrom RPM Requires β it's part ofpython3-libson RPM distros)
π Cross-distro bootstrap (bootstrap.sh)
python3-venvadded to detect-deps- openSUSE zypper install retry with
--no-gpg-checksfor transient repo timeouts - Removed duplicate model download (now handled by postinst / install.sh)
CI/CD
β CI (ci.yml)
All 21 jobs pass across 5 distros:
- Fixed openSUSE Tumbleweed zypper refresh timeout (cdn.opensuse.org unreachable)
- Fixed Fedora fedora-cisco-openh264 repo timeout β
--disablerepo=fedora-cisco-openh264added - Fixed cascading artifact name empty β
if: always()on Set artifact name step - 10 GTK writing test containers all green
β Release (release.yml)
16 jobs, all green:
- .deb build + verify: fixed missing
python3-venvin verify step - .rpm build + verify: fixed engine path, postinst logic, Fedora openh264 repo
- Test packages across all 10 distro containers pass
- Upload release assets: successful
Maintenance
- Build script
tools/build-test-usb-iso.shfor creating a Linux Mint 22 live USB with ibus-handwrite-chinese pre-installed (not in this release, development use) - README updated with new install paths, requirements, troubleshooting
Assets
.debβ Debian 11+, Ubuntu 22.04+, Linux Mint 21+.rpmβ Fedora 40+, openSUSE Tumbleweed.tar.gzβ source tarball (PKGBUILD reference inpackaging/)- All packages auto-download PP-OCRv6 model on install