Cloud integration
One important use case nowadays is to be connected to internet and have a seamless integration with the cloud.
In the past, we have had plugins for this like the Dropbox integration with Nautilus, but they are not really as good as the expectations we and users have.
We have improve this by having accounts in GOA for Nextcloud and others, that they get mounted as fuse systems and we expose them in the sidebar. However this came with some drawbacks, as they are just mounts they don't have synchronization and it doesn't have further available options coming from cloud providers, like a way to see a file in the web from Nautilus, or other integration.
For this we needed a way to communicate to cloud providers, and therefore define an API with items that we want to integrate. This is the project called libcloudproviders, where have worked on a first iteration of the API.
There are various improvements to be done in order to make cloud integration a first class citizen for Nautilus.
Problems the proposals try to address
- Cloud providers use closed source code, so we can’t control the user experience on the desktop.
- Cloud providers clientsprovide different experience based on its application, which may result in different workflows and poor integration.
- Integration is very poor, there is no generic point of communication with the cloud providers. Most of them rely on API that depends on a single file manager (usually Nautilus).
- They tend to use tray icons for the menus and status.
Proposals
Nautilus sidebar support
In the first iteration of libcloudproviders we achieved most of it, this includes:
- Custom menus
- Status display
- Access to main folder
The first iteration mockup is:
The plan is to have the following:
- Several main folders per cloud provider
- Hierarchy for several accounts of the same cloud provider
- Ability to select a cloud provider item as the main "home", so the user is always working inside the cloud provider folder
Nautilus view support
Currently there is nothing.
The plan is to have the following:
- Synchronization status visual hints per file (badges, etc.)
- File history changes display in a dialog
- ...
General integration support
- Notify if credentials expire and allow to log in again - #255