sync application configuration and settings across multiple multiplatform devices

Overview


synko

sync application configuration and settings across multiple multiplatform devices

license

Key Features ⚗️ Installation 📑 How To Use 🤔 FAQ 🛠️ Setup 👨 🧑 Contribution

Features

Synko is still in development phase and is not tested throughly, so it is recommended to take backup of the config files before adding to synko. As any bug may lead to loss of data.

  • Sync application settings and configuration files across multiple devices (linux and macos)
  • Works with dropbox (Read FAQ to know more)
  • User gets the freedom to add path to the config and setting files.
  • Freedom to sync specific set of files across specific set of devices. Here is an example:

feature-1-2

⚗️ Install

Install synko with pip

NOTE: If on using command not found: synko or similar message shows up then try running the above command as root user (sudo)

  pip install synko

📑 How to use

Note: on first usage of Synko it'll look for Dropbox directory and if not found, it will prompt to enter the path to dropbox. Also synko needs to register you device so it will prompt to enter device name which can be anything you want as long as it's not conflict with pre-registered devices. Here is how it looks:

In gif below, synko is running in WSL (Windows Subsystem Linux) and my dropbox folder is the Windows so I had to change the dropbox path to the one in windows for it to work properly.

unregistered

In case one want's to change/update the storage path anytime later then use synko info -p path/to/storage

Add

Usage: synko add [paths...] --config-name="configname"

adding files to synko

config-name can be anything, synko will add provided paths under the config name

add command 1

add multiple files to synko

Note: if --config-name / -c option is not used then it prompts to enter the config name as seen in below gif

add command 2

adding files under same config name

one can also add files to existing config names like so:

synko add ~/.config/random_app/newfile -c existing_config_name

How to sync?

Suppose there are two devices A and B. In device A you added a file like so:

Device A: synko add ~/.config/random_app/a.conf --config-name=config1

the file will be saved under config name "config1". In order to sync this file with device "B" you need to make sure that the file with similar name (a.conf in this case) already exists in device "B". If does not exist then create an empty file. After doing so you just need to add the file to synko in device B under the same config name used in device A (config1 in this case) like so:

Device B: synko add ~/.config/random_app/a.conf --config-name=config1

below is a demo syncing across device

It may also be possible that a.conf already exists in device B with some content which may differ from the one in device A. Conflict arise and user is given the options to choose which one's content should be saved:

syncing across device

Current process of syncing is bit tideous as of now but more changes will be made to make the process relatively easy.

Index

Usage: synko index

list all the added configurations

synko index

index

Remove

Usage: synko remove [options]

remove specific configuration/settings file added to synko

synko remove --config-name configuration_name_here

it asks to select one or multiple files one wants to remove from synko, user right arrow key to select and left arrow key to unselect , up and down arrow key to navigate. remove

If you don't want to remove any then select nothing and press enter, the process will be aborted

remove all config files added to Synko on current device for syncing (this won't affect other devices)

synko remove -a

remove all

Info

Usage: synko info [options]

displaying current synko settings

synko info

info

updating storage path

synko info -p path/to/storage/dir

info

in gif above synko is running in WSL (Windows Subsystem Linux) and my dropbox folder is the Windows so I had to change the dropbox path to the one in windows for it to work properly.

Reset

Usage: synko reset

Reset synko completely, (fresh as new)

This removes all the files added to synko on current device and also resets synko by unregistering you device and the storage path. So next time you run any synko command, you'll be prompted to register your device and if the default storage path is not found then you'll be prompted to enter storage path.

reset

In the gif above you can see that after reset command, the time when any other synko command is executed it prompts to register device.

🤔 FAQ

Only Dropbox supported?

Well synko works with any cloud storage syncing solution as long as all the devices use the same solution. You just need to provide synko with the path to the folder which is getting synced by the cloud storage syncing solution. Dropbox is the best one to go with as it has support for mutiple platforms.

🛠️ Setup

Install dependencies

using pipenv

pipenv install

using pip

pip3 install -r requirements.txt

Run:

After making changes make sure to run below command

sudo python3 setup.py install

now to run, directly use synko command.

👨 🧑 Contribution

If you are interested in helping with project development, see contribution guide to find a set of tips.

A fully automated, accurate, and extensive scanner for finding log4j RCE CVE-2021-44228

log4j-scan A fully automated, accurate, and extensive scanner for finding vulnerable log4j hosts Features Support for lists of URLs. Fuzzing for more

FullHunt 3.2k Jan 02, 2023
A simple port scanner for Web/ip scanning Port 0/500 editable inside the .py file

Simple-Port-Scanner a simple port scanner for Web/ip scanning Port 0/500 editable inside the .py file Open Cmd/Terminal Cmd Downloads Run Command: pip

YABOI 1 Nov 22, 2021
This Tool can help enginners and biggener in network, the tool help you to find of any ip with subnet mask that can calucate them and show you ( Availble IP's , Subnet Mask, Network-ID, Broadcast-ID )

This Tool can help enginners and biggener in network, the tool help you to find of any ip with subnet mask that can calucate them and show you ( Availble IP's , Subnet Mask, Network-ID, Broadcast-ID

12 Dec 13, 2022
Building a Robust IOT device which is customizable, encrypted, secure and user friendly

Building a Robust IOT device which is customizable, encrypted, secure and user friendly, which uses a single GPIO pin to extract multiple sensor values

1 Jan 03, 2022
With the use of this tool, you can change your MAC address

Akshat0404/MAC_CHANGER This tool has to be used on linux kernel. Now o

1 Jan 25, 2022
pureSxS - A tool to export Component Based Servicing packages from a full Windows installation

pureSxS A tool to export Component Based Servicing packages from a full Windows installation. Usage pureSxS.py source_mum destination pureSxS wor

Gamers Against Weed 3 Oct 03, 2022
Openconnect VPN RPi Gateway

Openconnect-VPN-RPi-Gateway See the blog (Chinese) for how to build an Openconne

Zhongze Tang 2 Jan 30, 2022
Tool for ROS 2 IP Discovery + System Monitoring

Monitor the status of computers on a network using the DDS function of ROS2.

Ar-Ray 33 Apr 03, 2022
SMS Based Headless Browsing

Browse the internet without a network connection - Submission for ConUHacks VI

Zafir Khalid 2 Feb 07, 2022
A library of functions that can be used to manage the download of claims from the LBRY network.

lbrytools A library of functions that can be used to manage the download of claims from the LBRY network. It includes methods to download claims by UR

13 Dec 03, 2022
league-connection is a python package to communicate to riot client and league client

league-connection is a python package to communicate to riot client and league client.

Sandbox 1 Sep 13, 2022
Nyx-Net: Network Fuzzing with Incremental Snapshots

Nyx-Net: Network Fuzzing with Incremental Snapshots Nyx-Net is fast full-VM snapshot fuzzer for complex network based targets. It's built upon kAFL, R

Chair for Sys­tems Se­cu­ri­ty 146 Dec 16, 2022
This is a simple python script to collect sub-domains from hackertarget API

Domain-Scraper 🌐 This is a simple python script to collect sub-domains from hackertarget API Note : This is tool is limited to 20 Queries / day with

CHINO TECH TOOLS 4 Sep 09, 2021
BLE parser for passive BLE advertisements

This pypi package is parsing BLE advertisements to readable data for several sensors and can be used for device tracking, as long as the MAC address is static. The parser was originally developed as

Ernst Klamer 19 Dec 26, 2022
sync application configuration and settings across multiple multiplatform devices

sync application configuration and settings across multiple multiplatform devices ✨ Key Features • ⚗️ Installation • 📑 How To Use • 🤔 FAQ • 🛠️ Setu

Souvik 6 Aug 25, 2022
Secure connection between tenhou Window client and server.

tenhou-secure The tenhou Windows client looks awesome. However, the traffic between the client and tenhou server is NOT encrypted, including your uniq

1 Nov 11, 2021
A light-weight open-source project CLI utility for showing services running on ports in a host

Portable Port Scanner (ppscanner) Portable Port Scanner (ppscanner) is a light-weight open-source CLI utility that leverages on nmap to make quick and

1 Oct 30, 2021
Godzilla traffic decoder Godzilla Decoder 是一个用于 哥斯拉Godzilla 加密流量分析的辅助脚本。

Godzilla Decoder 简介 Godzilla Decoder 是一个用于 哥斯拉Godzilla 加密流量分析的辅助脚本。 Godzilla Decoder 基于 mitmproxy,是mitmproxy的addon脚本。 目前支持 哥斯拉3.0.3 PhpDynamicPayload的

He Ruiliang 40 Dec 25, 2022
a decompilation of NAP36 the widevine removal software for amz and nf used by p2p groups until it stoped working due to it using expired cdm keys

NAP36 a decompilation of NAP36 the widevine removal software for amz and nf used by p2p groups until it stoped working due to it useing expired cdm ke

9 Aug 29, 2021
A network address manipulation library for Python

netaddr A system-independent network address manipulation library for Python 2.7 and 3.5+. (Python 2.7 and 3.5 support is deprecated). Provides suppor

711 Jan 05, 2023