Dropbox.com context menu integration in common file managers
Is your feature request related to a problem? Please describe. Maestral does not have the same dropbox.com integration with file managers' menus as the official client.
Describe the solution you'd like Context menu options similar to the native client.
Describe alternatives you've considered I wrote a small context menu service for Dolphin to link to the file/folder on dropbox.com which helps, but it's very basic and shows on files outside the Dropbox folder as well.
Thanks for the suggestion. In principle, there is a lot that could be done with file manager integration:
- Context menu items to create shared links, invite people to shared folders, open files on Dropbox, exclude items from selective sync, etc.
- Sync status indicators.
My issue with such integrations: they require very different approaches for the most prominent file managers (Nautilus / GNOME Files and Dolphin on Linux, Finder on macOS). For instance, a Finder extension should be a separate helper app which must be distributed in a parent app bundle. I don't know what is required for file manager integration on Linux desktops but I strongly suspect that they would need to be "installed" to specific system locations. A pip-install from PyPI is not well suited for that (it already struggles to put desktop files in the right place and is completely hopeless for virtual environments).
Providing such extensions reliably would therefore entail a lot of platform specific code (which I am reluctant to maintain) and improving the packaging / distribution routes for Linux (which is planned).
For the time being, the CLI commands aim to provide an interface which other people can use to create file manager integrations. For instance, the commands filestatus and sharelink should be useful for this. In that sense, I appreciate your Dolphin service!
Edit: Having a look at your gist also shows that Dolphin integration might not be as complex as I had feared.
I made a little plugin for Caja (MATE's file manages), that shows sync status indicators on files:

@samschott, is there any way to subscribe to the status change events, or is constant polling the only way to update this indicators?
@gentoo90, this does look nice!
Polling is indeed currently the only way to get the status of a single item. It looks like you are using the Python API for the plugin and not the CLI. The Python API does provide a long-poll endpoint status_change_longpoll() which blocks until there is any status change. You could block on this endpoint and then only ask for the file status of visible items if status_change_longpoll returns True. The GUI uses exactly this approach to be notified of changes without regular polling.
That being said, I'm open extend the API here. Options are:
- Provide a similar long-poll API for individual paths, to be notified of changes in their hierarchy.
- Publish events which clients can subscribe to. I'm not sure if there is a standard or de-facto standard way to do this in Python.
- Provide an API to register callbacks for file changes. This would be quite similar to the second option, a bit less flexible for the user.
Feel free to open a separate feature request if any of this sounds useful.
Hi, thanks @samschott for your great work on Maestral! It is disappointing that Dropbox doesn't have a better story for their official Linux clients. I'm coming here because a recent GNOME API change broke the official Dropbox client for Linux.
I am still getting set up with Maestral and it is working great. The one thing I am missing that was provided in the official Dropbox client was Nautilus integration for showing sync status and some quick actions like copying a link to the file in the clipboard. This is the one thing that seems to stand in the way of full feature parity with the official client.
The previous approach from the distro perspective was one package for the Dropbox client and one package for the Nautilus integration. If the code existed somewhere else for a Maestral Nautilus integration and also used a Free Software license, I could package it into Fedora along with the official Maestral client. I'm already looking into doing this because the official Dropbox client is broken in upgrades to Fedora Linux 37 with the GNOME API change. I think this will be a quality-of-life improvement for Fedora Dropbox users if Maestral is in the default repositories.