/syncthing-pyselective

Third-party app to realize selective sync in Syncthing

Primary LanguagePythonGNU General Public License v3.0GPL-3.0

Syncthing-PySelective

Third-party app to realize selective sync in Syncthing. It gives minimalist GUI to select which folders, subfolders and files you want to sync with a local machine and which one you would like to add for syncing.

It reads the global and local folder trees and fill tree view with checkboxes. Your choice is transformed to new list of ignores and submitted into Syncthing. Please be careful especially with the firsts versions as it could damage your predefined .stignore.

How to use

  1. Syncthing app should be started and listen default port.

  2. Apply the next template to the folder that you would like to be synced partially:

    //* Do not edit comments like this! *//

    //* Global ignores *//

    !/.stignoreglobal

    // Uncomment the next file if only the file exists locally

    //#include .stignoreglobal

    //* User defined *//

    // optional local ignores

    //* Selective sync (generated by pyselective) *//

    !/folder

    //* ignore all except selected *//

    **

    So, only the section Selective sync will be modified by the program

  3. Insert API Key into corresponding field. It will be saved for future.

  4. Press "Get folder tree" button and select which folders you would like to sync

  5. Press "Submit changes" to apply new ignore template

Requirements

Python 3 and PyQt5 must be installed to run the program.

About

I've started this project for my personal use case but I believe it could be helpful both to other people right now and to the Syncthing project to introduce Next Gen Ignores feature in future. Please be free to contact me about your wishes and bug reports and do not judge strictly my code.

Roadmap

  • Manual parsing stignore file to check global ignore patterns instead of making assumptions
  • Add options dialog into the UI to move API key, URL, etc into.
  • Human readable size column, assumtions about the size of folders by its context
  • Applying templates to the .stignore in one click (quick first start)
  • Hide all included (or hidden?) files in the tree
  • Syncronization state of the folder
  • Update item colors after changes submitted
  • Folders can be partially checked directly
  • Availabilily column
  • ...