UBConnect
UBConnect is a KDE Connect compatible client for Ubuntu Touch. It ships a background daemon and a QML-based UI that work together for LAN discovery, clipboard sync, notifications, and file transfer.
v0.1.1 has released.
The current version in open-store is v0.1.0. It should have all the features working, but there is a much optimized (especially on battery usage) version under review and hopefully will be released soon (the v0.1.1 in repo).
WARNING
This project is highly beta, highly privileged, and highly unconfined. The author will be using it every day so one might expect the author to be noticing and fixing bugs, but use at your own risk.
Especially, this project have following behavior you might concern:
- It creates a separate daemon to keep alive in background.
- The design of ubuntu touch prevents background clipboard access, this project achieve background clipboard access by observing the current focused window, and recording its surfaceID, and reusing it. This might be considered as security vulnerability to a concerning user. But I really can't think of an other way to achieve this function.
Other things to notice
- This a fresh implementation, so we does not support mDNS at all given it is being deprecated.
- Currently it supports clipboard, file sending and notification syncing. As explained in WARNING section, we need a surfaceID to sync clipboard, and if you have never copied something from the app you are currently using, while some other device paired sends a new clipboard, it will not be synced.
- Before you uninstall the click, first pull up from bottom menu to uninstall the daemon.
Project Layout
common/: shared C++ helpers (logging, protocol, keystore, device info).daemon/: background service, DBus bridge, networking, clipboard, notifications.ui/: Qt/QML UI client and device model.ui/qml/anddaemon/qml/: QML assets for each component.manifest.json.in,*.apparmor: packaging and confinement templates.
Requirements
- CMake 3.10+
- Qt 5 (Core, Network, Gui, Qml, Quick, DBus, Concurrent)
- Clickable (optional, for Ubuntu Touch build/deploy)
Build (CMake)
cmake -S . -B build
cmake --build build
Install into the staging prefix (useful for packaging):
cmake --install build
Ubuntu Touch (Clickable)
clickable build
clickable run
Running Locally
Build outputs include:
ubconnect-daemon: background service.ubconnect-ui: QML UI client.
On-device service helpers:
daemon/install.sh
daemon/uninstall.sh
Packaging Notes
manifest.json and AppArmor policies are generated from templates during the
CMake configure step. The Click framework selection comes from the environment
(CLICKABLE_FRAMEWORK, SDK_FRAMEWORK, or CLICK_FRAMEWORK).


