Multi-platform app that allows your devices to communicate
Find a file
l10n daemon script a0c1a57999 SVN_SILENT made messages (.desktop file) - always resolve ours
In case of conflict in i18n, keep the version of the branch "ours"
To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
2015-12-30 09:23:05 +00:00
app SVN_SILENT made messages (.desktop file) - always resolve ours 2015-11-17 12:54:36 +00:00
cli Fixed the CLI 2015-09-12 22:08:12 +02:00
cmake Move the generation of dbus interfaces into interfaces/ 2015-06-18 19:06:14 +02:00
core notifications: allow to configure how to sync desktop notifications 2015-12-05 23:23:22 +01:00
daemon SVN_SILENT made messages (.desktop file) - always resolve ours 2015-11-17 12:54:36 +00:00
doc Fix minor typo 2015-10-21 19:07:44 +03:00
fileitemactionplugin Fix typo in fileitemaction plugin's name 2015-11-25 17:38:58 +01:00
icon Removed unused tiny 8x8 icon 2015-05-17 23:29:23 -07:00
interfaces Polish NotificationsModel::isAnyDismissable proprety 2015-11-12 12:27:30 +01:00
kcm Fixed typo 2015-12-17 08:49:34 -08:00
kcmplugin Merge branch '0.9' 2015-10-19 17:48:13 +02:00
kio Indentation 2015-10-18 21:51:51 -07:00
plasmoid SVN_SILENT made messages (.desktop file) - always resolve ours 2015-11-17 12:54:36 +00:00
plugins SVN_SILENT made messages (.desktop file) - always resolve ours 2015-12-30 09:23:05 +00:00
telepathy-cm Fix compilation with newer (and older, i.e. last relased) telepathy-qt versions 2015-11-23 12:39:25 +01:00
tests Improve SharePlugin share notification method 2015-12-07 03:27:40 +01:00
.gitignore Fixed compilation warnings in clang (one of them is actually an issue!) 2015-04-19 22:50:12 -07:00
.reviewboardrc Submit .reviewboardrc file 2014-06-18 02:42:07 +02:00
CMakeLists.txt Remove unused dependency. 2015-11-20 02:49:08 +11:00
COPYING add missing licence file 2013-09-10 15:18:32 +01:00
kdeconnect-version.h.in Version number is now set in a single place 2015-02-04 23:52:07 -08:00
kdeconnect.appdata.xml SVN_SILENT made messages (after extraction) 2015-12-14 08:19:58 +00:00
KDEConnectMacros.cmake Port away from KServiceTrader 2015-03-19 16:36:53 +01:00
org.kde.kdeconnect.nonplasma.desktop SVN_SILENT made messages (.desktop file) - always resolve ours 2015-11-17 12:54:36 +00:00
README.md Fixed broken link 2015-11-11 17:09:24 -08:00

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 your Android notifications from the desktop.
  • Share files and URLs instantly from one device to another.
  • Multimedia remote control: Use your phone as a remote for Linux media players.
  • Virtual touchpad: Use your phone screen as your computer's touchpad.

All this without wires, over the already existing WiFi network, and using a secure, encrypted protocol.

Supported platforms

  • Computers running Plasma 5, KDE4, Unity (Ubuntu), Gnome 3, Elementary OS...
  • Android, by installing the KDE Connect Android app (also available on F-Droid).

There is also source code for an unmaintained iOS port, waiting for somebody to give it some love :)

How to install

This explains how to install KDE Connect on your computer. You will also need to install it in your phone and pair both devices in the app if you want it to be any useful.

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 :)

If you are not using Plasma 5 or KDE4, you will also need to install indicator-kdeconnect (available as an Ubuntu PPA) for integration with other desktops using appindicator.

On Mac or Windows

There is no support for Mac or Windows yet. The last time I checked it was compiling on Windows, so it's only lacking a user interface. Same for Mac. Contributions 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 (before encryption) 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 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.

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.

![Build Status](https://build.kde.org/buildStatus/icon?job=kdeconnect-kde master kf5-qt5)