oae / gnome-shell-extensions-sync

Syncs gnome shell keybindings, tweaks settings and extensions with their configuration across all gnome installations
https://extensions.gnome.org/extension/1486/extensions-sync/
GNU General Public License v2.0
295 stars 21 forks source link
extensions-sync gist gitlab gjs gnome gnome-installations gnome-shell-extension rollupjs syncs-gnome typescript

Extensions Sync

ts opensource licence latest compare

Syncs gnome shell keybindings, tweaks settings and extensions with their configuration across all gnome installations

Provider Synced Data Other Settings

Installation

From Git

git clone https://github.com/oae/gnome-shell-extensions-sync.git
cd ./gnome-shell-extensions-sync
yarn install
yarn build
ln -s "$PWD/dist" "$HOME/.local/share/gnome-shell/extensions/extensions-sync@elhan.io"

From Ego

You can install it from here

Usage

For Github

  1. Create a new gist from here I suggest you make it secret. You will need the gist id for this. You can find it in the url after username. For example on gist url https://gist.github.com/username/f545156c0083f7eaefa44ab69df4ec37, gist id will be f545156c0083f7eaefa44ab69df4ec37. Guide
  2. Create a new token from here. Only gist permission is needed since we edit the gists. Guide
  3. Open extension settings, select the Github provider and fill gist id from first step and user token from second step.

For Gitlab

  1. Create a new snippet from here I suggest you make it private. You will need the snippet id for this. You can find it in the url. For example on snippet url https://gitlab.com/-/snippets/324234234, snippet id will be 324234234. Guide
  2. Create a new token from here. Only api scope is needed. Guide
  3. Open extension settings, select the Gitlab provider and fill snippet id from first step and user token from second step.

For Local

  1. Select a file that has read/write permission by your active user. (default backup file is in ~/.config/extensions-sync.json)

Cli Usage

You can trigger upload download operations using busctl.

busctl --user call org.gnome.Shell /io/elhan/ExtensionsSync io.elhan.ExtensionsSync save # uploads to server
busctl --user call org.gnome.Shell /io/elhan/ExtensionsSync io.elhan.ExtensionsSync read # downloads to pc

Development