2019-01-04 - Since I don't own anymore an android device, I'm not able to develop it... so, developpement is stopped so far. Please check the fork Conecto started by @hannesschulze
It's a KDEConnect client using GTK+ written in Vala, based on mconnect. The application is designed for elementary OS. (but should works on other distributions, perhaps.)
A note on mconnect. First version of EOSConnect used a custom fork of mconnect, extending his DBus API, so used as a backend, started by EOSConnect at startup. But I encoutered lot's of issues with async DBus calls in order to setup mconnect backend correctly, and EOSConnect began to have too much files and abstractions classes - in order to be able to change the backend later. So I decided to integrate directly mconnect code into EOSConnect, removing his DBus API. It removed lot's of code in EOSConnect and I was able to setup and adapt mconnect like I want easily.
It's a Work In Progess, not intented for daily use.
It's searching in available adressbooks, or you can use a custom phone number.
You can send files to device from Files's context menu. (or from the Dock's quick list.)
- On Ubuntu or elementary OS, install these dependencies:
sudo apt install elementary-sdk libunity-dev libnotify-dev libghc-gnutls-dev libsqlite3-dev libedataserver1.2-dev libebook1.2-dev -y
- Clone the repository.
- Inside the project, compile with:
meson build && clear && ninja -C build && glib-compile-schemas ./data/
- Start application
- Start from the build directory:
GSETTINGS_SCHEMA_DIR=data ./build/src/com.github.gyan000.eos-connect
- Start with complete debug output:
GSETTINGS_SCHEMA_DIR=data ./build/src/com.github.gyan000.eos-connect -d
- To install it:
sudo ninja -C build install
- When launching app, sometimes, configured device, not connected on local network, does not appears as "not connected".
- When launching app, sometimes, need to unlock phone/tablet in order to see the device "connected".
- When started for the first time from build directory, quicklist not available.
- Import mconnect, remove useless stuff.
- List available devices.
- Use Tablet or Phone or Computre icons in devices list.
- Pair automatically.
- Plugin configuration by device: plugin list, custom name.
- List configured device in dynamic quicklist.
- Dconf: global setting and by device settings.
- Send / receive ping, with notification.
- Ping plugin configurarion. (button to send a ping.)
- Receive notification when battery below a threshold.
- Battery plugin configuration. (option to setup charge percentage warning)
- Show battery percentage in dynamic quicklist.
- Send / receive notifications.
- Notification plugin configuration. (configuration window to activate/deactivate send/receive notifications globally and by application, with application filter.)
- Synchronise notifications on both devices. (when notification closed on a device, it should close on the other device.)
- Send one or more files, with popup with file advancement.
- Receive files, with advancement using launcher api to display progress bar on the icon in the dock.
- Share plugin configuration. (option to setup default save folder)
- Add option to Files's context menu to send file(s) to a device.
- Send / receive SMS, with SMS notification.
- Option to display SMS tab in dynamic quicklist.
- Tab in main window with SMS history by contact.
- Add an icon on header bar to send SMS to one or more contacts.
- Use libedataserver & libebook to get available adressbooks and take contacts with mobile phone. (and use contact photo if available)
- Widget to send SMS, with input text and dropdown to select available device, which can send a SMS. (to use in the widget send SMS fom header bar, and into the SMS tab.)
- When entering phone number or contact name in SMS widget from headerbar, display available contacts, with photo.
- Use sqlite3 to store SMS by phone number. (and be able to scroll back in the history)
- When user do not want to store SMS with sqlite, use a dummy SMS store.
- General option, for all devices, to activate or not the storage of SMS history.
- SMS plugin configuration. (to setup how many days of history we want to keep)
- Display who's calling, with contact photo if available.
- Make sure we display notification when call missed.
- Telephony plugin configuration.
- Execute commands.
- Command plugin configuration. (configuration window with available commands for remove device)
- Copy / past working. (in both direction ?)
- Clipboard plugin configuration.
- Multimedia control plugin configuration.
- Remote control plugin configuration
- Remove refresh icon at bottom of devices list.
- Unpair device, with icon at bottom of devices list.
- Option, when unpairing a device, to delete everything: configuration, SMS history.
- Welcome screen, with how-to setup.
- Option to setup public visible name of EOSConnect.
- Translations: french.
- Code cleanup.