Do you love using GNOME Shell Extensions on your desktop, but don’t love having to manually install them each time you reinstall or switch machine?
Well, turns out you don’t need to because the GNOME Shell integration extension for Google Chrome lets you sync GNOME extensions between machines.
Yup, the same add-on you have to install in Google Chrome (or Chromium) to be able to install GNOME Shell Extensions on your desktop using the browser has a little hidden sync feature.
Once enabled you can sync GNOME extensions from, say, your desktop to other machines (almost) automatically.
As far as I know this feature only works in the Google Chrome/Chromium, not using the equivalent Firefox add-on.
How to sync GNOME Extensions between PCs using Chrome
Things you’ll need
First things first: you need to be using GNOME Shell, have GNOME extensions installed on your system.
This feature only works through Google Chrome or Chromium. It requires the GNOME Shell Integration extension installed in the browser, and the ‘
chrome-gnome-shell‘ host connector installed on your desktop.
If you’re running Ubuntu 17.04 you should have both of these already. If you don’t, or you’re running Ubuntu 16.04 LTS or 16.10, you can install the Chrome Extension from the Chrome Web Store:
The host connector is the glue between GNOME Shell and the browser. It can be installed direct from Ubuntu Software:
1. Sync Your GNOME Extensions
Ideally you should get set up on the Linux device which has all the GNOME Shell extensions you want to sync to another computer.
Open Google Chrome (or Chromium) and sign in to Chrome with the Google account you wish to sync through.
Next, right-click on the GNOME logo in the toolbar (or in the main menu, if it’s t
A new tab will open and you’ll see this dialog:
Check the radio item next to “Synchronize GNOME Shell extensions list” so that the ‘Yes‘ has a dark dot in the centre.
Check the status of your synchronized extensions by clicking the ‘Synchronization‘ link in the options window:
This screen shows you which extensions are synced, which are installed, and which are enabled. You can use it to troubleshoot.
And that’s all there is to the first part. Next comes the exciting bit: installing your synced extension on a different desktop.
2. Install Your Synced GNOME Extensions
Make sure to install the host connector package and the chrome gnome shell extension.
Then sign in to Chrome with the Google account you previously used to sync your GNOME extensions to.
Next, as before, right-click on the GNOME Shell Integration extension and select ‘Options’:
As soon as you okay the sync you’ll see this prompt:
Keep calm and select the middle option to install your synced list of extensions locally (it doesn’t matter if you already have some extensions; this option will only install the ones you synced).
Once you agree to overwrite the local list with the remote list you will see a series of install alerts appear so that the synchronised extensions you don’t have installed can be installed:
Install these as they appear and, once done, all your extensions should be synced, installed, and enabled (or disabled) as per your original config.
A few things to note about this feature as it currently exists. It can sync a list of extensions between desktops (as well whether they should be enabled or disabled) but it does not sync individual extension settings.
So, for example, if you have a custom Dash to Dock set-up Desktop A, Dash to Dock on Desktop B will not appear the same; it will be stock, using default settings.
If you uninstall an extension and want to delete it from the sync list you will need to disable syncing via the options dialog, then re-enable it, opting for “Use local extensions list overwrite remote”. The next time the extension syncs the extension will disabled and uninstalled from your other machines.
The same routine will apply when you install a new extension that you want to add to the sync roster.