/syncthing-macosx

Native Mac OS X syncthing (tray) application (beta)

Primary LanguageObjective-CMIT LicenseMIT

Syncthing for Mac OS X

Gitter.im Chat Downloads Latest release Build Status license

Introduction

syncthing-macosx is a native macOS Syncthing tray application bundle. It hosts and wraps Syncthing, making it behave more like a native macOS application and less like a command-line utility with a web browser interface.

Features include:

  • Open the Syncthing WebGUI from the tray in your prefered browser.
  • Optionally starts on login, so you don't need to set up Syncthing as a service.
  • Tray icon indicates when it is connected to syncthing (no status updates yet).
  • Retina ready icons for the Application bundle and status tray.
  • Automatic updates (using Sparkle pushed from github releases).
  • Open shared folders directly in Finder.

Screenshot

screen shot 2016-10-05 at 21 24 11

Installation

Currently Mac OS X 10.10 or higher is necessary. syncthing-macosx is packaged as and disk image with a application bundle. You should download the dmg and drag and drop to install. The only necessary configuration is to set the api key which can be found in the web interface.

The latest version can be downloaded from Github Releases

Why

All cross-platform approaches are not able to use all the native facilities of macOS. Including auto-updates, vector icon set (retina-ready) and creating an application bundle. GUIs are designed with XCode and everything is coded in Objective-C which is "the native approach".

Compiling

Build with XCode or run:

make debug

It will automaticly download syncthing amd64 binary and add it to the Application Bundle.

For release builds signing the application build and creating an distributable DMG:

make release-dmg

The script will select the first available Developer ID and sign the app with it. To specify the signing identity, use SYNCTHING_APP_CODE_SIGN_IDENTITY environment variable:

SYNCTHING_APP_CODE_SIGN_IDENTITY="Mac Developer: foo@bar.com (XB59MXU8EC)" make release-dmg

Goal

The goal of this project is to keep the Native Mac OS X Syncthing tray as simple as possible. No graphs, no advanced configuration windows. It just provides a very simple wrapper so users are not aware syncthing ships as a commandline application.

Known bugs

  • Issue #24: HTTPS with self signed certificate doesn't work and gives no usefull error.
    • Workaround: Disable HTTPS

Design

Design, internals and build process is documented in doc/design.md

Contributions

Contributions and issue reports are welcome. I'm an beginner in programming in Objective-C. Please keep in mind I do this on best-effort basis, and I try not to break the auto-updater.

I'm willing to add donated-based features if you need them.

License

MIT