Do you use GNOME with a lot of extensions ? If the answer is yes, you know it might be tedious to reinstall them every time you try out a new distro, or when you decide to set up a new machine. Well it's possible to sync your GNOME extensions between devices ! Let's see how to do it.
Original Tutorial by OMG Ubuntu: https://www.omgubuntu.co.uk/2019/04/sync-gnome-shell-extensions
Extensions Sync Extension: https://extensions.gnome.org/extension/1486/extensions-sync/
Gist Creation Page: https://gist.github.com/
Git Token Creation page: https://github.com/settings/tokens/new
Follow me on Twitter : http://twitter.com/thelinuxEXP
Wallpapers used are by Aishuuka: https://www.instagram.com/aishuuka/
Install the extension
Yes, you'll need an... extension to be able to make this work. Ironic, I know. Just download the "Extension Sync" extension from the GNOME extensions website, I'll leave a link to that in the description.
It's available for most recent GNOME versions, including 3.32, so whatever your distro, you shouldn't have any problems.
Set up the sync
This sync depends on GIST, a tool linked to github which allows to share text and snippets. You'll need to create your own Gist to sync extensions. It's pretty easy, head to gist.github.com.
If you don't already have a github account, now is the time to create one: click on "sign up" in the top right part of the page, and create your account.
Once you're done, click the "+" button on the top right part of the page to create a new Gist.
Enter a name, an click "create secret gist". This will avoid your data being visible by everyone.
Now, take a look at the page's URL: there should be your username, followed by a "/" and a series of numbers and letters. Copy that part somewhere.
Now, to sync, you'll also need a Gist token. Bear with me, it's still pretty simple. Head to the token creation page (again, link in the description), and enter a description for your token. This is a suite of characters that will work as a password to allow syncing.
Scroll down, and check "gist", to restrain that token to gist-syncing only, then click "genreate token".
Copy the suite of characters in the green square.
What we've done, is, basically, create an online text file where extension data will be stored, and create a token, or password, to allow syncing through the "Extension sync" extension.
Now you're all set. Open the "Extension sync" settings through GNOME Tweaks, or from the extension webpage.
There, enter the Gist ID (the first list of numbers and letters we copied after creating our gist), and your token which you just created.
Confirm, and you're done !
Now, when you reinstall, or set up a new machine, just install the "Extension sync" on the new GNOME desktop, and enter the same values for Gist ID and token, and you'll automatically download your extensions and setups.
If you want to stop syncing, just remove the "Extension sync" from your systems, and you're done !
It might seem complicated on paper, but it's a few simple steps that enhance GNOME, while we wait for the developers to implement a GNOME account :)