Multi-platform app that allows your devices to communicate
Find a file
Simon Redman 64062b3cc9 [Desktop] SMS plugin no longer creates desktop notifications -- Old functionality still supported by notifications plugin
Summary:
Drop support for creating notifications from the SMS plugin. The old usecase is better handled by the notifications plugin reply box anyway

Rename packets defined in SMS plugin from PACKET_TYPE_TELEPHONY_* to PACKET_TYPE_SMS_*

Update TELEPHONY plugin packet description to point to SMS plugin

Define TELEPHONY_REQUEST_MUTE packet to replace old TELEPHONY_REQUEST with mute event field

Please see Android-side patch here: D15544

Test Plan:
I see four test cases, based on the version of the app being used, where "old" means any version built with sources not containing this revision and "new" means any version built with sources using this revision:
 - New Android vs. New Desktop
   - Supported and works for me
 - New Android vs. Old Desktop
   - Supported and works for me
 - Old Android vs. New Desktop
   - Not supported - Download a new app from the Play store or F-Droid
 - Old Android vs. Old Desktop
   - If this is broken, it is not my fault :)

In the supported use cases:
 - Test SMS reply
   - Receive SMS (or MMS!) message
   - Verify that the //notification// plugin forwards a replyable notification and that replying works
 - Test incoming call ringer mute
   - Enable ringer volume (not vibrate)
   - Receive phone call
   - Verify a desktop notification with a Mute button appears
   - Verify that clicking the mute button causes the phone to stop making the ringer noise (vibration not affected)

Reviewers: #kde_connect, albertvaka, nicolasfella

Reviewed By: #kde_connect, albertvaka, nicolasfella

Subscribers: nicolasfella, kdeconnect

Tags: #kde_connect

Differential Revision: https://phabricator.kde.org/D15543
2018-09-16 16:06:53 -06:00
app Revert accidental change 2018-08-03 02:42:21 +02:00
cli Split SMS and Telephony plugin on desktop 2018-09-10 11:31:05 +02:00
cmake Move the generation of dbus interfaces into interfaces/ 2015-06-18 19:06:14 +02:00
core Fix regression where incoming transfers would fail 2018-09-08 00:40:20 +02:00
daemon SVN_SILENT made messages (.desktop file) - always resolve ours 2018-06-18 05:27:46 +02:00
declarativeplugin Split SMS and Telephony plugin on desktop 2018-09-10 11:31:05 +02:00
doc Reverted docs version as we didn't change them. 2016-07-22 13:13:30 +02:00
icon Add detection of Android TV devices with a proper icon 2018-05-10 17:55:55 +02:00
indicator SVN_SILENT made messages (.desktop file) - always resolve ours 2018-08-30 05:46:27 +02:00
interfaces Split SMS and Telephony plugin on desktop 2018-09-10 11:31:05 +02:00
kcm SVN_SILENT made messages (.desktop file) - always resolve ours 2018-06-18 05:27:46 +02:00
kcmplugin Clean-up requirements: cmake 3.0, qt 5.7, use min versions, deduplicate KF5 2018-03-17 23:34:33 +01:00
kio Revert "Fix deprecation warning from KIO" 2018-08-05 21:38:35 +02:00
nautilus-extension Compat with python3 2018-05-29 21:09:45 +02:00
plasmoid SVN_SILENT made messages (.desktop file) - always resolve ours 2018-08-27 05:46:19 +02:00
plugins [Desktop] SMS plugin no longer creates desktop notifications -- Old functionality still supported by notifications plugin 2018-09-16 16:06:53 -06:00
sfos Fixup the sfos mpris control 2018-08-26 21:10:05 +01:00
smsapp Set view to track new elements as they are added 2018-09-16 15:52:44 -06:00
tests [WIP] Get rid of DownloadJob 2018-08-15 17:18:40 +02:00
urlhandler SVN_SILENT made messages (.desktop file) - always resolve ours 2018-08-18 05:41:47 +02:00
.arcconfig Add arcconfig file, for phabricator integration 2017-05-25 00:28:11 +02:00
.arclint Add .arclint 2018-07-27 13:32:03 +02:00
.gitignore Notification icons from Android are now displayed 2017-04-13 21:32:03 +02:00
CMakeLists.txt Merge branch 'v1.3.2' 2018-09-06 18:23:11 +02:00
CONTRIBUTING.md Improve CONTRIBUTING.md 2018-05-16 22:31:16 +02:00
COPYING add missing licence file 2013-09-10 15:18:32 +01:00
kdeconnect-version.h.in Full version string 2018-05-30 21:01:12 +02:00
KDEConnectMacros.cmake Use the macro in ECM to install kdeconnect plugins 2016-06-01 05:16:40 +02:00
org.kde.kdeconnect.kcm.appdata.xml GIT_SILENT made messages (after extraction) 2018-08-18 03:41:39 +02:00
README.md Dummy commit to test commit notifications 2018-09-07 23:20:44 +02: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 and reply to 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 and keyboard.

All this without wires, over the already existing WiFi network, and using TLS encryption.

Supported platforms

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, you might want to install a user interface for your platform. The indicator-kdeconnect project provides an appindicator icon plus integration with Nautilus.

On Mac or Windows

Platforms other than Linux are not officially supported, but it should be possible to run KDE Connect there. You can compile KDE Connect for Windows using Craft and it works except for some plugins. I haven't tried on 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 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.

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.