samschott / maestral

Open-source Dropbox client for macOS and Linux
https://maestral.app
MIT License
3.12k stars 64 forks source link

Support multiple accounts in a single app instance #851

Open samschott opened 1 year ago

samschott commented 1 year ago

Is your feature request related to a problem? Please describe. Maestral's support for multiple accounts is simple: different app instances can use different config files, therefore working completely independently to sync different accounts and folders.

While this model reduces the complexity of the implementation, it does not work well with how some platforms model app behaviour. For example, on macOS, an app is typically expected to only have a single running instance. This is not enforced, but this expectation is apparent throughout the UX, from how login items are managed, to how apps are started by the OS.

Moving to a single instance of Maestral will have number of benefits:

  1. Simplified interaction with the host platform: No need to manage multiple login items, simpler startup and app lifecycle model.
  2. Shared settings can apply to all accounts if it makes sense. This is includes for example how often to check for updates, the log level, bandwidth limits used for syncing, etc.
  3. Define separate classes for common functionality and account-level sync functionality.
  4. Multiple accounts can be managed in the UI instead of requiring CLI usage.

Describe the solution you'd like

Allow full support for multiple accounts by:

  1. Moving shared config items to a "shared" config file and registering all linked accounts there. Individual instances can still have their own config and state files.
  2. Let sync clients share bandwidth between each other instead of working independently.
  3. Define a UI that makes it easy to manage multiple accounts, instead of requiring the CLI to do so.

Describe alternatives you've considered Keep the status quo.