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.

BaseSpec is a system that performs a comparative analysis of baseband implementation and the specifications of cellular networks.

BaseSpec is a system that performs a comparative analysis of baseband implementation and the specifications of cellular networks. The key intuition of BaseSpec is that a message decoder in baseband s

SysSec Lab 35 Dec 06, 2022
Pesquise, filtre e obtenha informações sobre animes. ( Módulo PIP )

Pesquise, filtre e obtenha informações sobre animes. ( Módulo PIP )

AimCaffe 3 Jan 30, 2022
Burp Extension that copies a request and builds a FFUF skeleton

ffuf is gaining a lot of traction within the infosec community as a fast portable web fuzzer. It has been compared and aligned (kinda) to Burp's Intruder functionality. Thus, Copy As FFUF is trying t

Desmond Miles 81 Dec 22, 2022
Flashes keyboard leds on incoming/outgoing network packets

LED Net Capture Flashes keyboard leds on incoming/outgoing network packets Usage Requires root priviledges to run usage: ledcapture.py [-h] --keyboard

Dan Habot 56 Oct 27, 2022
The AKS cluster provisioner provisions AKS clusters :-)

Overview The AKS cluster provisioner provisions AKS clusters :-) It uses the Azure CLI to configure VNet and subnets before creating the cluster itsel

Gigi Sayfan 1 Nov 10, 2021
Base on browser-time to get har from network, and use python to analyze the data .

base on browser-time to get har from network, and use python to analyze the data

1 Dec 20, 2021
Herramienta para transferir eventos de Shadowserver REST API hacia Azure Blob Storage.

Herramienta para transferir eventos de Shadowserver REST API hacia Azure Blob Storage.

CSIRT-RD 1 Feb 04, 2022
The module that allows the collection of data sampling, which is transmitted with WebSocket via WIFI or serial port for CSV file.

The module that allows the collection of data sampling, which is transmitted with WebSocket via WIFI or serial port for CSV file.

Nelson Wenner 2 Apr 01, 2022
👨🏼‍💻 ‎‎‎‏‏ A customizable man-in-the-middle TCP proxy with out-of-the-box support for HTTP & HTTPS.

👨‍💻 mitm A customizable man-in-the-middle TCP proxy with out-of-the-box support for HTTP & HTTPS. Installing pip install mitm Note that OpenSSL 1.1

Felipe 92 Jan 05, 2023
It's a little project for change MAC address, for ethical hacking purposes

MACChangerPy It's a small project for MAC address change, for ethical hacking purposes, don't use it for bad purposes, any infringement will be your r

Erick Adriano Nunes da Silva 1 Mar 11, 2022
Web-server with a parser, connection to DBMS, and the Hugging Face.

Final_Project Web-server with parser, connection to DBMS and the Hugging Face. Team: Aisha Bazylzhanova(SE-2004), Arysbay Dastan(SE-2004) Installation

Aisha Bazylzhanova 2 Nov 18, 2021
Wifi-Jamming is a simple, yet highly effective method of causing a DoS on a wireless implemented using python pyqt5.

pyqt5-linux-wifi-jamming-tool Linux-Wifi-Jamming is a simple GUI tool, yet highly effective method of causing a DoS on a wireless implemented using py

lafesa 8 Dec 05, 2022
Script and library to wait for a DNS authority server to get its configuration.

DNSWait dnswait is a small script to wait for the "propagation" of a namserver configuration. Installing It's as easy as: python -m pip install dnswai

Julien Palard 14 Jan 17, 2022
Module for convenient work with TCP sockets.

m_socket-py Module for convenient work with TCP sockets. Contributing Pool Request is supported! Ask questions in the Issues section. License Copyrigh

Egor Arskiy 5 Mar 09, 2022
nettrace is a powerful tool to trace network packet and diagnose network problem inside kernel.

nettrace nettrace is is a powerful tool to trace network packet and diagnose network problem inside kernel on TencentOS. It make use of eBPF and BCC.

84 Jan 01, 2023
Display ip2.network active live streams.

Display ip2.network active live streams.

Daeshon Jones 0 Oct 31, 2021
Remote vanilla PDB (over TCP sockets) done right: no extras, proper handling around connection failures and CI.

Overview docs tests package Remote vanilla PDB (over TCP sockets) done right: no extras, proper handling around connection failures and CI. Based on p

Ionel Cristian Mărieș 227 Dec 27, 2022
订阅转换,添加免流host

普通订阅转免流订阅 原理 将原来的订阅解析后添加免流host 使用方法 服务器域名/&&订阅链接&&免流host&&转换后服务器前缀 我这里已经在服务器上搭建好了

163 Apr 01, 2022
Simple P2P application for sending files over open and forwarded network ports.

FileShareV2 A major overhaul to the V1 (now deprecated) FileShare application. V2 brings major improvements in both UI and performance. V2 is now base

Michael Wang 1 Nov 23, 2021
The C based gRPC (C++, Python, Ruby, Objective-C, PHP, C#)

gRPC - An RPC library and framework gRPC is a modern, open source, high-performance remote procedure call (RPC) framework that can run anywhere. gRPC

grpc 36.6k Dec 30, 2022