KDE Connect adds communication between KDE and your smartphone.
Clone or download
Billy Laws and nicolasfella Add a progress slider to mpris remote in app
Summary:
The progress slider can be mooved to seek through the song and
will display song length and current position on sides.

Reviewers: #kde_connect, nicolasfella

Reviewed By: #kde_connect, nicolasfella

Subscribers: nicolasfella, kdeconnect

Tags: #kde_connect

Differential Revision: https://phabricator.kde.org/D17417
Latest commit 27f47ce Dec 17, 2018
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
app Add a progress slider to mpris remote in app Dec 18, 2018
cli Suppoer sharing text from kdeconnect-cli Dec 7, 2018
cmake Move the generation of dbus interfaces into interfaces/ Jun 18, 2015
core Fix minor typos Dec 11, 2018
daemon SVN_SILENT made messages (.desktop file) - always resolve ours Oct 10, 2018
data SVN_SILENT made messages (.desktop file) - always resolve ours Dec 3, 2018
declarativeplugin Share RemoteKeyboard implementation Nov 8, 2018
doc Reverted docs version as we didn't change them. Jul 22, 2016
icon Merge icon CMake macros Sep 27, 2018
indicator Add icons to indicator Dec 7, 2018
interfaces [Desktop] Change ThreadID to long Dec 12, 2018
kcm Don't use kcmshell5 for opening the KCM Dec 6, 2018
kcmplugin Clean-up requirements: cmake 3.0, qt 5.7, use min versions, deduplica… Mar 17, 2018
kio A QApplication object needs to be instantiated for kio-kdeconnect to … Nov 6, 2018
nautilus-extension Compat with python3 May 30, 2018
plasmoid Revert "Fix devicename in Plasmoid" Nov 26, 2018
plugins Handle case where more messages were requested but there were no more… Dec 14, 2018
sfos use libkeepalive to wakeup daemon Oct 23, 2018
smsapp [SMS App] Improve filter Dec 17, 2018
tests Combine multiple upload jobs into a single KCompositeJob so only 1 no… Nov 30, 2018
urlhandler SVN_SILENT made messages (.desktop file) - always resolve ours Dec 2, 2018
.arcconfig Add arcconfig file, for phabricator integration May 24, 2017
.arclint Add .arclint Jul 27, 2018
.editorconfig Add editorconfig file Oct 31, 2018
.gitignore Add .qmlc and .rej files to gitignore Nov 2, 2018
CMakeLists.txt Add dependency for Qt Quick Controls 2 Nov 7, 2018
CONTRIBUTING.md Improve CONTRIBUTING.md May 16, 2018
COPYING add missing licence file Sep 13, 2013
KDEConnectMacros.cmake Use the macro in ECM to install kdeconnect plugins Jun 1, 2016
README.md Updated README.md Nov 28, 2018
kdeconnect-version.h.in Full version string May 30, 2018

README.md

KDE Connect - desktop app

KDE Connect is a multi-platform app that allows your devices to communicate (eg: your phone and your computer).

(Some) Features

  • Shared clipboard: copy and paste between your phone and your computer (or any other device).
  • Notification sync: Read and reply to your Android notifications from the desktop.
  • Share files and URLs instantly from one device to another including some filesystem integration.
  • Multimedia remote control: Use your phone as a remote for Linux media players.
  • Virtual touchpad: Use your phone screen as your computer's touchpad and keyboard.
  • Presentation remote: Advance your presentation slides straight from your phone.

All this is done completely wirelessly, utilising TLS encryption.

Supported platforms

  • Computers running Linux with Plasma 5, Gnome 3, Elementary OS... any distro with Qt5 support given a little work :)
  • Android, by installing the KDE Connect app from the Play Store or F-Droid.

How to install

These instructions explain how to install KDE Connect on your computer. You will also need to install it on your Andriod device and pair them together in the app before using this application. The Android app repository can be found here

On Linux

Look in your distribution repo for a package called kdeconnect-kde, kdeconnect-plasma, or just kdeconnect. If it's not there and you know how to build software from sources, you just found the repo :), instructions are here

On Mac or Windows

Platforms other than Linux are not officially supported, as there has yet to be an official release of KDE Connect for MacOS or Windows. However, most of the features have already been ported to windows so you can compile KDE Connect for Windows using Craft. It hasn't yet been completely tested on MacOS, contributions and feedback are welcome!

On BSD

It should work, but no promises :)

How does it work?

KDE Connect consists of an UI-agnostic "core" library which exposes a series of DBus interfaces, and several UI components that consume these DBus interfaces. This way, new UI components can be added to integrate better with specific platforms or desktops, without having to reimplement the protocol or any of the internals. The core KDE Connect library is also divided in 4 big blocks:

  • LinkProviders: Are in charge of discovering other KDE Connect-enabled devices in the network and establishing a Link to them.
  • Devices: Represent a remote device, abstracting the specific Link that is being used to reach it.
  • NetworkPackets: JSON-serializable and self-contained pieces of information to be sent by the plugins between devices.
  • Plugins: Independent pieces of code which implement a specific feature. Plugins will use NetworkPackets to exchange information through the network with other Plugins on a remote Device.

The basic structure of a NetworkPacket is the following:

{
  "id": 123456789,
  "type": "com.example.myplugin",
  "body": {  },
  "version": 5
}

The content of the "body" section is defined by each Plugin. Hence, only the emisor and receiver plugins of a given packet type need agree on the contents of the body.

NetworkPackets can also have binary data attached that can't be serialized to JSON. In this case, two new fields will be added:

"payloadSize": The size of the file, or -1 if it is a stream without known size.
"payloadTransferInfo": Another JSON object where the specific Link can add information so the Link in the remote end can establish a connection and receive the payload (eg: IP and port in a local network). It's up to the Link implementation to decide how to use this field.

Contributing

To contribute patches, use KDE Connect's Phabricator. There you can also find a task list with stuff to do, and links to other relevant resources. It is a good idea to also subscribe to the KDE Connect mailing list. We can also be reached on IRC at #kdeconnect on freenode or on telegram, contributions and feedback are warmly welcomed.

License

GNU GPL v2 and GNU GPL v3

If you are reading this from Github, you should know that this is just a mirror of the KDE Project repo.