Skip to content
Share application state across computers using Dropbox.
Python Makefile
Branch: develop
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
bin
docs Add link to edit docs Jan 26, 2019
mine Support "/System/Applications" folder in Catalina Oct 14, 2019
tests Add type checking with mypy Dec 28, 2018
.coveragerc Add type checking with mypy Dec 28, 2018
.gitattributes Update project structure May 26, 2016
.gitignore Switch to poetry for project management Dec 22, 2018
.isort.cfg Add type checking with mypy Dec 28, 2018
.mypy.ini Add type checking with mypy Dec 28, 2018
.pydocstyle.ini Update tooling Oct 23, 2017
.pylint.ini Switch to poetry for project management Dec 22, 2018
.scrutinizer.yml Update .scrutinizer.yml Sep 18, 2018
.travis.yml Test against Python 3.6 on Travis CI May 21, 2019
.verchew.ini Support "/System/Applications" folder in Catalina Oct 14, 2019
CHANGELOG.md Support "/System/Applications" folder in Catalina Oct 14, 2019
CONTRIBUTING.md Add type checking with mypy Dec 28, 2018
LICENSE.md Update tooling Mar 15, 2018
Makefile Support "/System/Applications" folder in Catalina Oct 14, 2019
README.md Add link to edit docs Jan 26, 2019
mkdocs.yml Add link to edit docs Jan 26, 2019
poetry.lock Support "/System/Applications" folder in Catalina Oct 14, 2019
pyproject.toml Support "/System/Applications" folder in Catalina Oct 14, 2019
pytest.ini Switch to poetry for project management Dec 22, 2018
scent.py Add type checking with mypy Dec 28, 2018

README.md

Overview

This program lets you synchronize application data using Dropbox.

It automatically starts and stops programs that would otherwise fight over data in a shared folder and ensures only one instance is running. Many applications work fine when their data is stored in Dropbox, but some programs overwrite databases:

  • iTunes
  • iPhoto
  • etc.

while others periodically write snapshot data:

  • Eclipse
  • Xcode
  • etc.

and some just don't make sense to keep running on all your computers:

  • Slack
  • HipChat
  • etc.

Build Status Coverage Status Scrutinizer Code Quality PyPI Version

Setup

Requirements

  • Python 3.6+

Installation

Install mine with pip:

$ pip install mine

or directly from the source code:

$ git clone https://github.com/jacebrowning/mine.git
$ cd mine
$ python setup.py install

Configuration

Create a mine.yml in your Dropbox:

config:
  computers:
  - name: My iMac
    hostname: My-iMac.local
    address: 00:11:22:33:44:55
  - name: My MacBook Air
    hostname: My-MacBook-Air.local
    address: AA:BB:CC:DD:EE:FF
  applications:
  - name: iTunes
    properties:
      auto_queue: false
      single_instance: true
    versions:
      mac: iTunes.app
      windows: iTunes.exe
      linux: null
  - name: Slack
    properties:
      auto_queue: true
      single_instance: false
    versions:
      mac: Slack.app
      windows: null
      linux: null

Include the applications you would like mine to manage. Computers are added automatically when mine is run.

The versions dictionary identifies the name of the executable on each platform. The properties.auto_queue setting indicates mine should attempt to launch the application automatically when switching computers. The properties.single_instance setting indicates the application must be closed on other computers before another instance can start.

Usage

To synchronize the current computer's state:

$ mine

To close applications on remote computers and start them locally:

$ mine switch

To close applications running locally:

$ mine close

To close applications locally and start them on another computer:

$ mine switch <name>

To delete conflicted files in your Dropbox:

$ mine clean
You can’t perform that action at this time.