Skip to content
Snippets Groups Projects
Commit b986e764 authored by gyan000's avatar gyan000
Browse files

Import code

parents
No related branches found
No related tags found
No related merge requests found
Showing
with 471 additions and 0 deletions
# EditorConfig <http://EditorConfig.org>
root = true
# elementary defaults
[*]
charset = utf-8
end_of_line = lf
indent_size = tab
indent_style = space
insert_final_newline = true
max_line_length = 120
tab_width = 4
# Markup files
[{*.html,*.xml,*.xml.in,*.yml}]
tab_width = 2
build
install
# GSettings Schemas
*.compiled
# Object files
*.o
*.ko
*.obj
*.elf
# Precompiled Headers
*.gch
*.pch
# Libraries
*.lib
*.a
*.la
*.lo
# Shared objects (inc. Windows DLLs)
*.dll
*.so
*.so.*
*.dylib
# Executables
*.exe
*.out
*.app
*.i*86
*.x86_64
*.hex
This diff is collapsed.
README.md 0 → 100644
## EOSConnect
It's a KDEConnect client using GTK+ written in Vala, based on mconnect [mconnect](https://github.com/kevinselvaprasanna/mconnect).
The application is designed for elementary OS. (but should works on other distributions, perhaps.)
A note on [mconnect](https://github.com/kevinselvaprasanna/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.
### Warning
It's a Work In Progess, not intented for daily use.
### Installation
1 - On Ubuntu or elementary OS, install these dependencies:
```bash
sudo apt install elementary-sdk libunity-dev libnotify-dev libghc-gnutls-dev libsqlite3-dev libedataserver1.2-dev libebook1.2-dev/ -y
```
2 - Clone the repository.
3 - Inside the project, compile with:
```bash
meson build && clear && ninja -C build && glib-compile-schemas ./data/
```
4.1 - To start it from the build directory:
```bash
GSETTINGS_SCHEMA_DIR=data ./build/src/com.github.gyan000.eos-connect
```
4.2 - To start it, with complete debug output:
```bash
GSETTINGS_SCHEMA_DIR=data ./build/src/com.github.gyan000.eos-connect -d
```
5 - To install it:
```bash
sudo ninja -C build install
```
### Known issues
* 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".
* Need to click on quicklist option "Send or view SMS" to display contact list in SMS tab.
### Roadmap
#### v0.1
- [x] Import mconnect, remove useless stuff.
- [x] List available devices.
- [x] Use Tablet or Phone or Computre icons in devices list.
- [x] Pair automatically.
- [x] Plugin configuration by device: plugin list, custom name.
- [x] List configured device in dynamic quicklist.
- [x] Dconf: global setting and by device settings.
#### v0.2 - ping
- [x] Send / receive ping, with notification.
- [x] Ping plugin configurarion. (button to send a ping.)
#### v0.3 - battery
- [x] Receive notification when battery below a threshold.
- [x] Battery plugin configuration. (option to setup charge percentage warning)
- [x] Show battery percentage in dynamic quicklist.
#### v0.4 - notification
- [x] Send / receive notifications.
- [x] 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.)
#### v0.4 - share
- [x] Send one or more files, with popup with file advancement.
- [x] Receive files, with advancement using launcher api to display progress bar on the icon in the dock.
- [x] Share plugin configuration. (option to setup default save folder)
#### v0.5 - SMS
- [x] Send / receive SMS, with SMS notification.
- [x] Option to display SMS tab in dynamic quicklist.
- [x] Tab in main window with SMS history by contact.
- [x] Add an icon on header bar to send SMS to one or more contacts.
- [x] Use libedataserver & libebook to get available adressbooks and take contacts with mobile phone. (and use contact photo if available)
- [x] 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.)
- [x] When entering phone number or contact name in SMS widget from headerbar, display available contacts, with photo.
- [x] 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)
#### v0.5.1 - Telephony
- [] Display who's calling, with contact photo if available.
- [] Make sure we display notification when call missed.
- [] Telephony plugin configuration.
#### v0.7 - Commands
- [] Execute commands.
- [] Command plugin configuration. (configuration window with available commands for remove device)
#### v0.8 - Clipboard
- [] Copy / past working. (in both direction ?)
- [] Clipboard plugin configuration.
#### v0.9 - Multimedia control
- [] Multimedia control plugin configuration.
#### v0.9.1 - Remote control
- [] Remote control plugin configuration
#### v1
- [] 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.
data/com.github.gyan000.eos-connect.appdata.png

20.6 KiB

<?xml version="1.0" encoding="UTF-8"?>
<!-- Copyright 2018 gyan000 <gyan000@ijaz.fr> -->
<component type="desktop">
<id>com.github.gyan000.eos-connect.desktop</id>
<metadata_license>CC0</metadata_license>
<name>EOS Connect</name>
<summary>KDE Connect client for Elementary OS.</summary>
<description>
<p>KDE Connect client for Elementary OS, based on MConnect.</p>
</description>
</component>
[Desktop Entry]
Name=EOS Connect
GenericName=EOS Connect
Comment=KDE Connect client for Elementary OS.
Categories=Utility;
Exec=com.github.gyan000.eos-connect
Icon=application-default-icon
Terminal=false
Type=Application
X-GNOME-Gettext-Domain=eos-connect
X-GNOME-UsesNotifications=true
Keywords=KDE;connect;
<?xml version="1.0" encoding="UTF-8"?>
<schemalist>
<schema id="com.github.gyan000.eos-connect" path="/com/github/gyan000/eos-connect/">
<key type="b" name="use-dark-theme">
<default>false</default>
<summary>Use dark theme.</summary>
</key>
<key type="b" name="kdeconnect-telephony-db-setup-done">
<default>false</default>
<summary>Will be set to false after the creation of all Sqlite tables.</summary>
</key>
<key type="b" name="kdeconnect-telephony-store-sms-globally-active">
<default>true</default>
<summary>Activate / Deactivate the storage of SMS for all devices.</summary>
</key>
</schema>
<schema id="com.github.gyan000.eos-connect.settings.device">
<key type="s" name="custom-name">
<default>""</default>
<summary>Custom name for the device.</summary>
</key>
<key type="b" name="kdeconnect-battery-active">
<default>true</default>
<summary>Receive battery information.</summary>
</key>
<key type="b" name="kdeconnect-battery-notify-low-level-active">
<default>true</default>
<summary>Notify user when battery level below a certain treshold.</summary>
</key>
<key type="d" name="kdeconnect-battery-low-level-treshold">
<default>5</default>
<summary>Battery level treshold to send a notification to user.</summary>
</key>
<key type="b" name="kdeconnect-notification-active">
<default>true</default>
<summary>Receive or send notifications between devices.</summary>
</key>
<key type="b" name="kdeconnect-notifications-send">
<default>true</default>
<summary>Send notifications between devices.</summary>
</key>
<key type="as" name="kdeconnect-notifications-send-banned">
<default>[]</default>
<summary>List of AppInfo IDs banned.</summary>
<description>A list of AppInfo IDs we won't send notification to remote device.</description>
</key>
<key type="b" name="kdeconnect-notifications-receive">
<default>true</default>
<summary>Receive notifications between devices.</summary>
</key>
<key type="b" name="kdeconnect-ping-active">
<default>true</default>
<summary>Receive or send ping message.</summary>
</key>
<key type="b" name="kdeconnect-share-active">
<default>true</default>
<summary>Share files trough devices.</summary>
</key>
<key type="s" name="kdeconnect-share-directory">
<default>""</default>
<summary>Default directory used to save downloaded files.</summary>
</key>
<key type="b" name="kdeconnect-telephony-active">
<default>true</default>
<summary>Calls notification and SMS.</summary>
</key>
<key type="b" name="kdeconnect-telephony-store-sms-active">
<default>true</default>
<summary>Store SMS.</summary>
</key>
</schema>
</schemalist>
# Daemon Desktop file (for GNOME Session autostart)
#configure_file(
# input: meson.project_name() + '-daemon.desktop.in',
# output: '@BASENAME@',
# configuration: conf_data,
# install_dir: join_paths(get_option('datadir'), 'applications')
#)
# D-Bus Service
#configure_file(
# input: meson.project_name() + '.service.in',
# output: '@BASENAME@',
# configuration: conf_data,
# install_dir: dbus.get_pkgconfig_variable('session_bus_services_dir')
#)
# GNOME Shell Search Provider
#configure_file(
# input: meson.project_name() + '.search-provider.ini.in',
# output: '@BASENAME@',
# configuration: conf_data,
# install_dir: join_paths(get_option('datadir'), 'gnome-shell', 'search-providers')
#)
# AppData file
i18n.merge_file(
input: meson.project_name() + '.appdata.xml.in',
output: '@BASENAME@',
po_dir: join_paths(meson.source_root (), 'po', 'extra'),
type: 'xml',
install_dir: join_paths(get_option('datadir'), 'metainfo'),
install: true
)
# Desktop File
desktop_in = configure_file(
input: meson.project_name() + '.desktop.in.in',
output: '@BASENAME@',
configuration: conf_data
)
i18n.merge_file(
input: desktop_in,
output: meson.project_name() + '.desktop',
po_dir: join_paths(meson.source_root (), 'po'),
type: 'desktop',
install_dir: join_paths(get_option('datadir'), 'applications'),
install: true
)
# Blacklist file
#install_data(
# 'appcenter.blacklist',
# install_dir: config_dir,
#)
# Install GSettings schemas
install_data(
meson.project_name() + '.gschema.xml',
install_dir: join_paths(get_option('datadir'), 'glib-2.0', 'schemas')
)
# Use GResource
#css_gresource = gnome.compile_resources(
# 'gresource_css',
# meson.project_name() + '.gresource.xml'
#)
#icons_gresource = gnome.compile_resources(
# 'gresource_icons',
# 'icons/categories.gresource.xml',
# source_dir: 'icons'
#)
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\n9PluT96VKlSB6Y//
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\nH//Z
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
project(
'com.github.gyan000.eos-connect',
'vala', 'c',
version: '0.4.9')
gettext_name = meson.project_name()
gnome = import('gnome')
i18n = import('i18n')
add_project_arguments(
'-DGETTEXT_PACKAGE="@0@"'.format(gettext_name),
'-DI_KNOW_THE_PACKAGEKIT_GLIB2_API_IS_SUBJECT_TO_CHANGE',
language:'c'
)
dep_atspi = dependency('atspi-2')
dep_gdk = dependency('gdk-3.0')
dep_gee = dependency ('gee-0.8')
dep_gio = dependency ('gio-2.0')
dep_gio_unix = dependency('gio-unix-2.0')
dep_glib = dependency('glib-2.0')
dep_granite = dependency ('granite', version: '>=0.4.2')
dep_gtk = dependency ('gtk+-3.0', version: '>=3.18')
dep_gnutls = dependency('gnutls')
dep_gobject = dependency('gobject-2.0')
dep_json_glib = dependency('json-glib-1.0')
dep_libebook = dependency('libebook-1.2')
dep_libedataserver = dependency('libedataserver-1.2')
dep_libnotify = dependency('libnotify')
dep_posix = meson.get_compiler('vala').find_library('posix')
#dep_libsoup = dependency ('libsoup-2.4')
dep_unity = dependency('unity', version: '>=4.0.0')
dep_sqlite = dependency('sqlite3')
add_project_arguments(['--vapidir', join_paths(meson.current_source_dir(), 'src/MConnect/vapi')], language: 'vala')
dependencies = [
dep_atspi,
dep_gdk,
dep_gee,
dep_gio,
dep_gio_unix,
dep_glib,
dep_gnutls,
dep_gobject,
dep_granite,
dep_gtk,
dep_json_glib,
dep_libebook,
dep_libedataserver,
dep_libnotify,
#dep_libsoup,
dep_posix,
dep_sqlite,
dep_unity
]
conf_data = configuration_data()
conf_data.set('PROJECT_NAME', meson.project_name())
#conf_data.set('DESKTOP_ICON', get_option('icon'))
conf_data.set('EXEC_NAME', meson.project_name())
conf_data.set('GETTEXT_PACKAGE', meson.project_name())
#conf_data.set('APP_NAME', get_option('name'))
conf_data.set('VERSION', meson.project_version())
#conf_data.set('CONFIGDIR', config_dir)
conf_data.set('EXEC_PATH', join_paths (get_option('prefix'), get_option('bindir'), meson.project_name()))
meson.add_install_script('meson/post_install.py')
subdir('data')
subdir('src')
subdir('po')
#!/usr/bin/env python3
import os
import subprocess
schemadir = os.path.join(os.environ['MESON_INSTALL_PREFIX'], 'share', 'glib-2.0', 'schemas')
if not os.environ.get('DESTDIR'):
print('Compiling gsettings schemas...')
subprocess.call(['glib-compile-schemas', schemadir])
fr
uk
src/EOSConnect.vala
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the com.github.gyan000.eos-connect package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: com.github.gyan000.eos-connect\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-06-03 18:05+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=CHARSET\n"
"Content-Transfer-Encoding: 8bit\n"
#: src/EOSConnect.vala:19 src/EOSConnect.vala:47
msgid "Use dark style"
msgstr ""
#: src/EOSConnect.vala:45
msgid "Use light style"
msgstr ""
po/fr.po 0 → 100644
# French translations for com.github.gyan000.eos-connect package.
# Copyright (C) 2018 THE com.github.gyan000.eos-connect'S COPYRIGHT HOLDER
# This file is distributed under the same license as the com.github.gyan000.eos-connect package.
# Automatically generated, 2018.
#
msgid ""
msgstr ""
"Project-Id-Version: com.github.gyan000.eos-connect\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-06-03 18:05+0200\n"
"PO-Revision-Date: 2018-06-03 16:22+0200\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=ASCII\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
#: src/EOSConnect.vala:19 src/EOSConnect.vala:47
msgid "Use dark style"
msgstr "Utiliser le style sombre"
#: src/EOSConnect.vala:45
msgid "Use light style"
msgstr "Utiliser le style clair"
#~ msgid "EOS Connect"
#~ msgstr "EOS Connect"
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment