Maestral Is A New Open Source Dropbox Client For Linux And macOS

Maestral Dropbox opensource client

Maestral is a new open source Dropbox client for macOS and Linux, that's currently in beta. It can be used both with and without a GUI, and it was created with the purpose of having a Dropbox client that supports folder syncing to drives which use filesystems like Btrfs, Ext3, ZFS, XFS or encrypted filesystems, which are no longer supported by Dropbox.

[Later edit] Dropbox has partially reverted the change of only supporting Ext4 filesystems on Linux. A Dropbox client update brings back support for ZFS and XFS on 64-bit Linux systems, and eCryptFS and Btrfs on all Linux systems.

The PyQt5 application had its first release intended for everyday usage just 2 days ago, but it already includes features like:

  • Pause / resume syncing
  • Shows sync status and potential sync errors
  • Selective sync
  • System notifications on file changes
  • List of recently changed files (only for the current session for now)
  • Shows used / total Dropbox space
  • Choose your Dropbox folder location
  • Menu entries to open Dropbox folder and launch the Dropbox website
  • Start Maestral on login
  • Option to unlink Dropbox account from Maestral
  • Keyring integration through the Python keyring lib, which supports backends like macOS Keychain, the Freedesktop Secret Service supports many DE including GNOME, and KDE KWallet
  • Can run in GUI or command line modes

When using Maestral from the command line, you can choose to keep it running and continuously sync your Dropbox folder, or to only perform some operations on your Dropbox files, like moving or renaming, uploading a new file to your Dropbox account, and so on.

As you'd expect, the application's features are not on par with the official Dropbox client, but more features will probably be added in future releases. Some of the more important features that Maestral is lacking include support for Dropbox Teams, Dropbox Paper, the management of shared folders, and file browser integration. Other features that it does not yet include are proxy support, choosing the type of notification to receive, lan sync, or bandwidth limiting.

Related: How To Use Dropbox On Non-Ext4 Filesystems (Btrfs, Ext3, XFS, ZFS, Etc.) On Linux (Workaround)

But Maestral does offer something the official Dropbox client no longer offers: support for filesystems like Btrfs, Ext3, ZFS, XFS or encrypted filesystems, on both Linux and macOS. For the time being there are workarounds that you can use to continue using the official Dropbox client with what Dropbox deems as "uncommon" filesystems like the ones I already mentioned, so use that if you like, but do note that solutions like this can stop working at any time.

Besides this, the application is also lighter than the official Dropbox app. According to the Maestral project page, this app "is 80% smaller than the official Dropbox App (50 MB vs 290 MB) and uses 70% less memory", with both having the potential of being much smaller if using Maestral without a GUI. To this I'll also add that on my Ubuntu 19.04 desktop, System Monitor reports that Maestral (GUI) uses 63 MiB of RAM, while Dropbox uses 165 MiB.

The Maestral GitHub repository page has a couple of warnings which I'll also mention here, since they are quite important. Since Maestral is still in beta, there are some rough edges and though it's highly unlikely, using it may cause data loss, so be warned. Also, Maestral does not have production status yet, so its API is limited to 500 user accounts for now!

Since Maestral is a tray app, so you need a working tray system to use the GUI (this is not needed if you plan on using it from the command line only). On Gnome Shell you can use the AppIndicator Support extension. This is installed and enabled by default on Ubuntu.

You might also like (it can encrypt your Dropbox data on the client side): Cryptomator Secures Your Cloud Storage Data (Open Source, Multi-Platform Client-Side Encryption Tool)

Maestral Dropbox installation and usage

macOS Mojave users can download Maestral from the Releases tab on GitHub.

On Linux, the Maestral instructions recommend installing the app from PyPI using pip. Let's install it for your user only (it's best not to mix pip and sudo), while installing the PyQt5 dependency through your Linux distribution's package manager.

1. Add ~/.local/bin to your PATH if it's not already added. This is needed because packages installed using pip have their binaries placed in this folder, which is not in your PATH by default.

  • for Bash:
echo "export PATH=\"\$PATH:\$HOME/.local/bin\"" >> ~/.bashrc

. ~/.bashrc

  • for Zsh:
echo "export PATH=\"\$PATH:\$HOME/.local/bin\"" >> ~/.zshrc

. ~/.zshrc

2. Install Python3 PIP, Setuptools and PyQt5 from your Linux distribution's repositories.

  • Debian, Ubuntu, Linux Mint, Pop!_OS, etc.:
sudo apt install python3-pip python3-setuptools python3-pyqt5

  • Fedora:
sudo dnf install python3-pip python3-setuptools python3-qt5

  • openSUSE:
sudo zypper install python3-pip python3-setuptools python3-qt5

  • Arch Linux / Manjaro:
sudo pacman -S python-pip python-setuptools python-pyqt5

3. Install Maestral for your user.

python3 -m pip install --user maestral

When you want to update it, run:

python3 -m pip install --upgrade --user maestral

Now that Maestral is installed, you can run it with a graphical user interface for the first time using:

maestral gui

If you want to have Maestral continuously sync the Dropbox folder with your Dropbox account but without using a GUI, run it from the command line using:

maestral sync

Maestral Dropbox authorization

The first time you run Maestral, either with a GUI or from the command line, it will guide you through the process of linking your Dropbox account.

Maestral will not show up in your applications menu after its installation, so use the command I pointed out earlier to start it from a terminal. You may also enable its option to automatically start on login, so you don't have to run it manually.

If ~/.local/bin is not in your PATH system wide, the autostart feature won't work. In that case you can get Maestral to start automatically on login by enabling the Start Maestral on login option, next open ~/.config/autostart/maestral.desktop with a text editor and use sh -c "~/.local/bin/maestral gui" as the Exec value (Exec=sh -c "~/.local/bin/maestral gui"). You may also do all this using one command:

sed -i 's/^Exec.*/Exec=sh -c "~\/.local\/bin\/maestral gui"/' ~/.config/autostart/maestral.desktop