gnome-shell-extensions-sync
gnome-shell-extensions-sync copied to clipboard
Syncs gnome shell keybindings, tweaks settings and extensions with their configuration across all gnome installations
Extensions Sync
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/[email protected]"
From Ego
You 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.
-