Gnome shell extensions sync
Syncs gnome shell keybindings, tweaks settings and extensions with their configuration across all gnome installations
Syncs gnome shell keybindings, tweaks settings and extensions with their configuration across all gnome installations The project is written primarily in TypeScript, distributed under the GNU General Public License v2.0 license, first published in 2018. Key topics include: extensions-sync, gist, gitlab, gjs, gnome.
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
bashgit 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
- 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
Githubprovider 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
Gitlabprovider 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.
shbusctl --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
shgit clone https://github.com/oae/gnome-shell-extensions-sync.git cd ./gnome-shell-extensions-sync -
Install dependencies and build it
shyarn install yarn build ln -s "$PWD/dist" "$HOME/.local/share/gnome-shell/extensions/extensions-sync@elhan.io" -
During development you can use
yarn watchcommand to keep generated code up-to-date.
-
Contributors
Showing top 5 contributors by commit count.





