Extensions Sync
Syncs gnome shell keybindings, tweaks settings and extensions with their configuration across all gnome installations
Provider | Synced Data | Other Settings |
---|---|---|
Installation
Git
Fromgit 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/[email protected]"
Ego
FromYou can install it from here
Usage
- You can select the data types that are going to be saved in the settings.
For Github
- 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 bef545156c0083f7eaefa44ab69df4ec37
. Guide - Create a new token from here. Only gist permission is needed since we edit the gists. Guide
- Open extension settings, select the
Github
provider and fill gist id from first step and user token from second step.
For Gitlab
- 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 be324234234
. Guide - Create a new token from here. Only api scope is needed. Guide
- Open extension settings, select the
Gitlab
provider and fill snippet id from first step and user token from second step.
For Local
- 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
-
This extension is written in Typescript and uses rollup to compile it into javascript.
-
To start development, you need nodejs installed on your system;
-
Clone the project
git clone https://github.com/oae/gnome-shell-extensions-sync.git cd ./gnome-shell-extensions-sync
-
Install dependencies and build it
yarn install yarn build ln -s "$PWD/dist" "$HOME/.local/share/gnome-shell/extensions/[email protected]"
-
During development you can use
yarn watch
command to keep generated code up-to-date.
-