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.

Malcolm is a powerful, easily deployable network traffic analysis tool suite for full packet capture artifacts (PCAP files) and Zeek logs.

Malcolm is a powerful, easily deployable network traffic analysis tool suite for full packet capture artifacts (PCAP files) and Zeek logs.

Cybersecurity and Infrastructure Security Agency 1.3k Jan 08, 2023
A Powerful, Smart And Simple Userbot In Telethon

Owner: KeinShin 🇮🇳 BLACK LIGHTNING A Powerful, Smart And Simple Userbot In Telethon. Credits This is A Remix Bot Of Many UserBot. DARKCOBRA FridayUs

Akki ThePro 1 Nov 29, 2021
Port Traffic/Bandwidth Monitor Script

python-switch-port-traffic-alarm Port Traffic/Bandwidth Monitor Script That's an Switch Port Traffic monitor program is checking the switch uplink por

goksinenki 4 Sep 02, 2021
MoreIP 一款基于Python的面向 MacOS/Linux 用户用于查询IP/域名信息的日常渗透小工具

MoreIP 一款基于Python的面向 MacOS/Linux 用户用于查询IP/域名信息的日常渗透小工具

xq17 9 Sep 21, 2022
Serves some data over HTTP, once. Based on the built-in Python module http.server

serve-me-once Serves some data over HTTP, once. Based on the built-in Python module http.server.

Peder Bergebakken Sundt 2 Jan 06, 2022
Desktop application for checking sites connection in a background mode

Site connectivity checker Desktop application for checking site connection in a background mode by sending ICMP messages. Problem and solution Usually

Karina Singatullina 26 Dec 19, 2022
This repository contain sample code of gRPC Communication between Python and GoLang

This repository contain sample code of gRPC Communication between Python and GoLang, the Server is running on GoLang while Python is running the client

Abdullahi Muhammad 2 Nov 29, 2021
Discord RPC Generator With Python

Discord-RPC-Generator Thank you for using this Discord Custom RP Generator. This is 100% safe and open source. Download Discord for your computer here

1 Nov 09, 2021
Monitoring plugin to check network interfaces with Icinga, Nagios and other compatible monitoring solutions

check_network_interface - Monitor network interfaces This is a monitoring plugin for Icinga, Nagios and other compatible monitoring solutions to check

DinoTools 3 Nov 15, 2022
Apple Store Stock Notifier monitors the availability of selected Apple devices in selected Apple stores, and sends you a notification when devices are available!

Apple Store Stock Notifier This software will immediately send you a notification via Telegram when one of your coveted Apple Devices is available in

Floris-Jan Willemsen 25 Dec 05, 2022
A Python Packages to make own chat room

Chathon A Python packages for make own chat room Install PyPI pip install chathon

1 Dec 10, 2021
Qtas(Quite a Storage)is an experimental distributed storage system developed by Q-team in BJFU Advanced Computer Network sources.

Qtas(Quite a Storage)is a experimental distributed storage system developed by Q-team in BJFU Advanced Computer Network sources.

Jiaming Zhang 3 Jan 12, 2022
An curated collection of awesome resources about networking in cybersecurity

An ongoing curated collection of awesome software, libraries, frameworks, talks & videos, best practices, learning tutorials and important practical resources about networking in cybersecurity

Paul Veillard, P. Eng 7 Nov 30, 2022
Throttle rTorrent on Plex stream Start/Stop

Dependencies Python 3.6+ Tautulli Script Setup Edit rtorrent_throttle.py and set rTorrent username, password and RPC2 url. Tautulli Setup Commum Scrip

4 Apr 25, 2022
A simple, 2-person chat program that runs on a single computer. No Internet, just you

localChat A simple, 2-person chat program that runs on a single computer. No Internet, just you. Simple and Local This was created with ease of use in

Owls 2 Aug 19, 2022
ExtDNS synchronizes labeled records in docker-compose with DNS providers.

ExtDNS for docker-compose ExtDNS synchronizes labeled records in docker-compose with DNS providers. Inspired by External DNS, ExtDNS makes resources d

DNTSK 6 Dec 24, 2022
Python tutorial for implementing Oxylabs' Residential Proxies with AIOHTTP

Integrating Oxylabs' Residential Proxies with AIOHTTP Requirements for the Integration For the integration to work you'll need to install aiohttp libr

Oxylabs.io 6 Sep 14, 2022
TradingView Interactive Brokers Integration using Webhooks

TradingView Interactive Brokers Integration using Webhooks

84 Dec 19, 2022
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
Tool for pretty printing and optimizing Lightning Network channels.

Suez Tool for pretty printing and optimizing Lightning Network channels. Installation Install poetry poetry install poetry run ./suez Channel fee poli

Pavol Rusnak 69 Nov 03, 2022