UBports Robot Logo UBports Forum
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Search
    • Register
    • Login

    UBConnect: A native ubuntu touch application for KDE connect

    Scheduled Pinned Locked Moved App Development
    14 Posts 3 Posters 1.0k Views 1 Watching
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
      Reply
      • Reply as topic
      Log in to reply
      This topic has been deleted. Only users with topic management privileges can see it.
      • A Offline
        Averiz
        last edited by Averiz

        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.

        OpenStore

        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/ and daemon/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).

        Well...

        buymecoffee

        K 1 Reply Last reply Reply Quote 3
        • K Online
          kugiigi @Averiz
          last edited by

          @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 😄

          A 1 Reply Last reply Reply Quote 1
          • W Offline
            wally
            last edited by

            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!!

            Languages: 🇬🇧 🇨🇦 🇫🇷

            1 Reply Last reply Reply Quote 0
            • A Offline
              Averiz @kugiigi
              last edited by Averiz

              @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).

              K 1 Reply Last reply Reply Quote 0
              • K Online
                kugiigi @Averiz
                last edited by

                @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 😅

                1 Reply Last reply Reply Quote 0
                • A Offline
                  Averiz
                  last edited by

                  v0.1.1 has been released on open-store. The battery consumption of UBConnect should now be negligible (and there is now an icon).

                  K 1 Reply Last reply Reply Quote 1
                  • K Online
                    kugiigi @Averiz
                    last edited by

                    @Averiz I have the first version since yesterday and to be fair the battery seems good. I didn't use that device much though 😄

                    A 1 Reply Last reply Reply Quote 1
                    • A Offline
                      Averiz @kugiigi
                      last edited by

                      @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.

                      K 1 Reply Last reply Reply Quote 1
                      • K Online
                        kugiigi @Averiz
                        last edited by

                        @Averiz Do we need to reinstall the daemon when there's a new app version or for example this latest version with battery optimizations?

                        A 1 Reply Last reply Reply Quote 0
                        • A Offline
                          Averiz @kugiigi
                          last edited by

                          @kugiigi The app update will update the daemon at the same time, I think.

                          K 1 Reply Last reply Reply Quote 0
                          • K Online
                            kugiigi @Averiz
                            last edited by kugiigi

                            @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 😅

                            A 1 Reply Last reply Reply Quote 0
                            • A Offline
                              Averiz @kugiigi
                              last edited by

                              @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.

                              K 1 Reply Last reply Reply Quote 1
                              • K Online
                                kugiigi @Averiz
                                last edited by

                                @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.

                                1 Reply Last reply Reply Quote 0
                                • A Offline
                                  Averiz
                                  last edited by

                                  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.
                                  1 Reply Last reply Reply Quote 0
                                  • First post
                                    Last post