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
    4 Posts 3 Posters 69 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

        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

        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 record its surfaceID, and reuse it to achieve background clipboard access. 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 Offline
          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).

              1 Reply Last reply Reply Quote 0
              • First post
                Last post