etesync / etesync-dav

This is a CalDAV and CardDAV adapter for EteSync
https://www.etesync.com
GNU General Public License v3.0
294 stars 49 forks source link

GNOME integration #5

Open rugk opened 6 years ago

rugk commented 6 years ago

Probably you know GNOME's nice integration of "online accounts". So one can e.g. use Nextcloud for contact sync, see image below. However, as far as I see, this is not yet possible with EteSync.

gnomeonlineaccounts

So maybe with the help of this desktop client or maybe the CLI tool, such integration is possible? Or maybe try to send patches/pursue GNOME to add it as an official version? (and allow self-hosted versions, of course). Or integration into GNOME calendar, which AFAIK can also be achieved separately to whole GNOME integration. (although the latter is, of course, better, as it also syncs contacts then)

tasn commented 6 years ago

Oh sweet! I'll try to get to it soon, though admittedly, I'm not a GNOME user (I use i3), so not sure how soon that will be. Happy to support anyone who wants to undertake this task. Since gnome shell is very JS heavy, I assume this would be written in JS (correct?). This is great, because there's already a JS etesync implementation (inside etesync-web, but well split from everything else), so all one would need is to write the glue code!

More info on online accounts: https://wiki.gnome.org/Projects/GnomeOnlineAccounts

60Eight commented 5 years ago

Any movement on this?

tasn commented 5 years ago

Sorry, not yet. An iOS client is a higher priority and I'm working on that at the moment. There are a few other things that will come before this, especially since there's already a solution, just run etesync-dav locally and connect Gnome to it.

60Eight commented 5 years ago

Running etesync-dav isn't that smooth. I don't have much knowledge regarding docker and such. Would've been easier if it could be distributed as a package.

tasn commented 5 years ago

I completely agree it's not ideal. There's already an Arch package (well, AUR), and I'll happily include links to packages for other distros. I also want to setup something like AppImage so it'll be easy to just ship binaries too, but it's a matter of getting to do it, which I can't at the moment (again, iOS is a higher priority). Happy to support whatever efforts anyone is taking to do any of the above.

reyman commented 5 years ago

I'm also very interested, like lot of ubuntu user, i'm using Gnome 3 & Gnome-calendar integrated into evolution mail.

snaggen commented 5 years ago

@tasn Only the gnome-shell is JS, most of gnome is written in C as is gnome online accounts.

The gnome online accounts code is found here: https://gitlab.gnome.org/GNOME/gnome-online-accounts/

And while I understand that there are more important things (also agree with IOS client having higher priority aso), setting up the etesync-dav is a little fiddly. I just did a "docker pull" and then it started to complain about "Failed to load htpasswd" and stopped working. So I then trew out docker and decided to run it directly, which means setting up systemd integration and resolving selinux issues. Which this is still a fairly technical way of running things, having it integrated in online accounts would improve the user experience a lot. Maybe working with the Gnome community and running this as a summer of code kind of thing?

tasn commented 5 years ago

@snaggen, I completely agree with you that a proper integration is better. Though having to implement the whole EteSync protocol in C (even though it's not that big!) is going to be time consuming. Do you know if they have any plans on supporting backends in higher level languages? We already have Python, Go, JavaScript, Java and Kotlin implementations. I guess I could just write a small C wrapper around one of the other implementations, though that would be a bit ugly. :)

Do you know anyone relevant from the GNOME community that may be able to help? Summer of code is already over for this year unfortunately, but it's definitely something to keep in mind for next year.

snaggen commented 5 years ago

@tasn Unfortunately my GNOME related development was a long time ago, now a days I'm mostly a user. However, I don't think the integration would need to be that complicated since they already support the Dav protocols required. So, I would assume you could just write the online account integration as a wrapper that configures and setup the existing etesync-dav. Well, in the end it will probably require a lot of struggling on the way, but that is where I would start looking.

tasn commented 5 years ago

Ah, so your idea is to keep etesync-dav, and just launch it automatically in the background. I was thinking more of a real integration. Interesting thought.

4jNsY6fCVqZv commented 4 years ago

Together with a native support of EteSync in EDS I find this issue very exciting! What does it take from developers or from the EteSync community to solve this issue?

tasn commented 4 years ago

This is really just pending on EDS support. The moment that's there it should be trivial to add it to GNOME.

christianfl commented 4 years ago

Confirmed for Google Summer of Code 2020: https://summerofcode.withgoogle.com/projects/#5162094988623872

jonas-hagen commented 3 years ago

Now that EDS support is here, what is needed to have this integrated into Gnome Online Accounts? I just started using the Etesync EDS plugin and it works perfectly so far. I see the Calendar and Contacts in the respective Gnome apps, just as when I added Google via Gnome Online Accounts. So it really just is a UI thing left to be done?

Edit: EDS: Evolution Data Server

tasn commented 3 years ago

Just the UI, yeah. The UI in Gnome Online Accounts is hard-coded to only allow certain resources, so need to send them a patch. Issued I opened on the EDS module: https://gitlab.gnome.org/GNOME/evolution-etesync/-/issues/2 Maybe someone could also open one on the GNOME online accounts repo: https://gitlab.gnome.org/GNOME/gnome-online-accounts/-/issues/

Maybe also mention the evolution issue I mentioned above.

rugk commented 3 years ago

What exactly is EDS?

tasn commented 3 years ago

Evolution Data Server - it's the GNOME personal information backend.

rugk commented 3 years ago

Okay opened an issue there: https://gitlab.gnome.org/GNOME/gnome-online-accounts/-/issues/152

Though I could not comment/add any technical details. Please add them by yourself, if you want.

tasn commented 3 years ago

Great, thanks for the update!

christianfl commented 1 year ago

Did anyone try the GOA integration with EteSync from one of the linked MRs? I am curious what is the best workflow to add an EteSync account with the Librem 5 as Evolution does not scale that well.