![OpenMouse](https://github.com/Macmee/OpenMouse/blob/master/open-mouse-header-grapic.png?raw=true)

-----

## What
OpenMouse is a **FREE AND OPEN SOURCE** alternative to payware such as Synergy or ShareMouse. It is currently under development and not ready for real use (but getting close!).

## Features

Feel free to request more features by filing an issue, or by forking and submitting a pull request.

- [x] 100% free and open source
- [x] Mouse sharing
- [x] Basic keyboard sharing
- [ ] Advanced keyboard sharing (escape/fn-keys)
- [ ] Custom keyboard shortcut forwarding to specific screen 
- [x] Scroll-wheel sharing
- [x] Clipboard text transfer (`Cmd+Option+C` / `Cmd+Option+V` while controlling another Mac)
- [x] Explicit six-digit device pairing and encrypted input/clipboard transport
- [ ] Clipboard file transfer
- [ ] Screensaver syncing
- [ ] File drag 'n drop
- [ ] Touchpad gesture support
- [x] CLI interface
- [x] Graphical interface for connecting
- [x] Graphical interface for managing screens/machines
- [ ] Audio relay
- [x] Multiplatform support (MacOS/Linux/Windows)
- [x] Auto reconnect for paired Macs
- [x] Unit tested

## Building
To build it at the moment you require nodejs and nvm (I am running 6.3.1 and 5.5.1). Clone this repo and run `npm install`.

## Running

Launch OpenMouse with `npm start` on each Mac. Nearby Macs appear as
**Available** but cannot receive input or clipboard data until you choose
**Pair** and confirm the same six-digit code on both Macs.

After pairing, drag each Mac as one display group in the Arrangement view.
Several paired Macs can share one local screen edge; their vertical or
horizontal positions determine which Mac the pointer enters along that edge.
Use **Disconnect** to pause an individual pair, **Connect** to resume it, or
**Forget** to remove its saved identity and arrangement.
