UBConnect: A native ubuntu touch application for KDE connect
-
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.2.0 is released
Changelog:
- Battery status sync: added kdeconnect.battery support.
- Multimedia controls (MPRIS).
- Theme settings: new Settings page with Bright/Dark/System themes and consistent readable palette across surfaces/text.
- Notification improvements: IDs standardized to strings with backward-compatible conversions on receive; new “keep on remote devices” toggle (skips cancel sends);.
- Find‑My‑Phone: ringing support with notification and volume boost.
- UI polish: service install prompt simplified (“Daemon is installed.”) and layout fixes.
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 buildInstall into the staging prefix (useful for packaging):
cmake --install buildUbuntu Touch (Clickable)
clickable build clickable runRunning Locally
Build outputs include:
ubconnect-daemon: background service.ubconnect-ui: QML UI client.
On-device service helpers:
daemon/install.sh daemon/uninstall.shPackaging Notes
manifest.jsonand AppArmor policies are generated from templates during the
CMake configure step. The Click framework selection comes from the environment
(CLICKABLE_FRAMEWORK,SDK_FRAMEWORK, orCLICK_FRAMEWORK).Well...
-
@Averiz This is awesome. I'm gonna test this on my extra/test devices. Yes this is unconfined and has many security/privacy concerns but this is still a progress and hopefully, we can slowly implement things in better (confined) ways especially on the system's part

-
Really cool! I think this will be a very welcome app.
The security concerns do seem significant, but perhaps it can improve over time.
Thank you for your work on this!! -
@kugiigi I think some change on system is indeed needed. Android also introduced restriction to clipboard some years ago, and force KDE Connect to change to using persistent notification with a send clipboard button. The problem is Ubuntu Touch doesn't even allow apps to write to clipboard in background in a confined way. I tried (in a non-public branch) to use indicator to achieve a similar behaviour of persistent notification to abandon the daemon, however the allowed behavior of the indicator on Ubuntu Touch seems to be also rather limited (I could be wrong, I am new to Ubports and am still learning).
-
@Averiz I haven't updated my custom indicators for Noble yet so not sure how they work now but I think it is indeed a good thing to explore. You can have UI there to manage connections and such. And I believe you can also have something running all the time as replacement to the daemon. I am however not an expert with it so I might be wrong

-
v0.1.1 has been released on open-store. The battery consumption of UBConnect should now be negligible (and there is now an icon).
-
@Averiz I have the first version since yesterday and to be fair the battery seems good. I didn't use that device much though

-
@kugiigi There were certain corner cases like multiple devices in same LAN and not reliable network and clipboard happening all the time etc. Thanks for the feedback, good to know it works.
-
@Averiz Do we need to reinstall the daemon when there's a new app version or for example this latest version with battery optimizations?
-
@kugiigi The app update will update the daemon at the same time, I think.
-
@Averiz Ah so the app updates it at runtime?
I'm curious because it does install the daemon inside the app right? So that doesn't get installed with the click installer.Also, how do you disable clipboard syncing? It seems like clipboard totally broke in the system, pasting is always empty

-
@kugiigi Upon install, the daemon file will be installed but not enabled/started by systemd, that inside the app does enable+start. On update, the daemon file under systemd's ExecStart will be replaced, but due to the nature of systemd, the newer version will not be executed upon next restart/reinstall daemon.
What do you mean totally broke the system? What are your observations? How do you arrive at the conclusion it is caused by UBConnect? Could you share some logs and also create an issue?
At least on my device the clipboard is still working without problem.
-
@Averiz I didn't test extensively. I clicked on sync clipboard on my UT device. I tried copy pasting on both my phone and desktop but my phone kept on pasting blanks. Even the texts I copied internally won't work. After a while, the text I copied on the desktop got pasted on my phone but copy pasting internally was still broken. I don't think there's a way to disable it in the app so I disabled clipboard syncing on my desktop and the clipboad worked normally again.
-
v0.2.0 is released
Changelog:
- Battery status sync: added kdeconnect.battery support.
- Multimedia controls (MPRIS).
- Theme settings: new Settings page with Bright/Dark/System themes and consistent readable palette across surfaces/text.
- Notification improvements: IDs standardized to strings with backward-compatible conversions on receive; new “keep on remote devices” toggle (skips cancel sends);.
- Find‑My‑Phone: ringing support with notification and volume boost.
- UI polish: service install prompt simplified (“Daemon is installed.”) and layout fixes.

