mconnect - KDE Connect protocol implementation in Vala/C
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
Maciek Borzecki 4c865a7bbc discovery: use Socket.create_socket_source() 9 years ago
src discovery: use Socket.create_socket_source() 9 years ago
test mconn-crypt-test: use mconn_ namespace 9 years ago
vapi vapi: use modified gio-2.0 bindings 9 years ago
.gitignore Initial commit 10 years ago
.travis.yml travis: run verbose builds 9 years ago
LICENSE Initial commit 10 years ago
Makefile.am vapi: use modified gio-2.0 bindings 9 years ago
README.md README: update dependencies 10 years ago
configure.ac configure: do not look for g-ir-scanner 9 years ago
mconnect.conf mconnect.conf: sample configuration 10 years ago
mconnect.desktop.in mconnect.desktop: update desktop file 10 years ago
mconnect.spec mconnect.spec: spec updates with missing build requirements 10 years ago

README.md

mconnect

mconnect - KDE Connect protocol implementation in Vala/C

GLib and Gio should be available even on trimmed down systems. Vala is really needed only at build time. OpenSSL does the packet encryption/decryption at the protocol level, while Json-glib does packet parsing. Libnotify is responsible for displaying shell popups.

Since I'm new ot Vala, I'm treating this as a learning execrise, yet with usable results.

Building

Build dependencies (using package names as found in Fedora):

  • vala
  • glib2-devel
  • gobject-introspection-devel
  • libgee-devel
  • json-glib
  • openssl-devel
  • libnotify-devel

or see mconnect.spec in source tree. Once build deps are in place, run:

autoreconf -if
./configure --prefix=<your favorite prefix>
make
make install
# or make DESTDIR=<somedir> install if you want to inspect what
# gets installed

Configuration

A sample configuration file is provided in source tree, see mconnect.conf. It will get installed to ${sysconfdir}/mconnect/ (usually corresponding to /etc/mconnect/) by default. Once mconnect starts it will pick the default file and make a copy of it in user's config directory, specifically ~/.config/mconnect/.

A device described in it's own group and listed in main.devices, has to match exactly with incoming identity packets. However, since deviceId is not known beforehand, neither shown in KDE Connect Android application, only name and type are used for matching.

Usage

Start it by running:

mconnect -d

Operation

The daemon starts listening on 0.0.0.0:1714 for incoming UDP packets. Once an identity packet (a sort of a handshake) is received, a connection at the sender's address will be made only if the device is listed as allowed in mconnect.conf (see the sample config). Should the device be whitelisted in configuration, pairing will happen automatically.