Skip to content
Syncs gnome shell extensions and their configurations across all gnome installations with the help of gist
Branch: master
Clone or download
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.vscode
icons Add upload download status menu, Remove auto sync Oct 8, 2018
schemas Use gschema for gist-id, gist-token and lastUpdate times Oct 7, 2018
ui Use gschema for gist-id, gist-token and lastUpdate times Oct 7, 2018
.editorconfig Add ability to watch for changes in extension and their settings Sep 30, 2018
.gitignore Add _build to gitignore Oct 1, 2018
LICENSE
Makefile Fix makefile Oct 31, 2018
README.md feat: add debug flag for logging Mar 30, 2019
convenience.js
extension.js feat: add debug flag for logging Mar 30, 2019
installer.sh Update installer.sh Mar 24, 2019
metadata.json
prefs.js
request.js Update license to GPLv2 Oct 31, 2018
settings.js refactor: remove signals Apr 1, 2019
statusMenu.js
sync.js
utils.js feat: add debug flag for logging Mar 30, 2019

README.md

Extensions Sync

Syncs gnome shell extensions and their configurations across all gnome installations with the help of gist

SS

Installation

From Git

curl https://raw.githubusercontent.com/oae/gnome-shell-extensions-sync/master/installer.sh | bash

From Ego

Usage

  1. Create a new gist from here I suggest you make it secret.
  2. Create a new token from here. Only gist permission is needed since we edit the gists.
  3. Open extension settings and fill gist id from first step and gist token from second step.
  4. Enjoy!

Debugging

  • If you encounter a problem you can enable the debug logs with;

    busctl --user call org.gnome.Shell /org/gnome/Shell org.gnome.Shell Eval s 'window.extensionsSync.debug = true;'
  • Then trace them with;

    journalctl /usr/bin/gnome-shell -f -o cat | grep "\[extensions-sync\]"

Notes

  • Downloading from gist will do 3 things.

    • It will remove all extensions that are not exist in the gist.
    • It will install extensions that are listed in gist and update their settings.
    • It will update all the settings of installed the extensions.
  • Uploading to gist will dump all the settings of the installed extensions(enabled/disabled) and put them in the gist with the below structure

    {
      "description": "Extensions sync",
      "files": {
        "syncSettings": {
          "content": {
            "lastUpdatedAt": "time",
          }
        },
        "extensions": {
          "content": {
            "extension1": {
              "schema1": "schema1 settings",
              "schema2": "schema2 settings",
            },
            "extension2": {
              "schema1": "schema1 settings",
              "schema2": "schema2 settings",
            },
          }
        }
      }
    }
You can’t perform that action at this time.