mjakeman / extension-manager

A utility for browsing and installing GNOME Shell Extensions.
https://mattjakeman.com/apps/extension-manager
GNU General Public License v3.0
988 stars 78 forks source link

Idea: import and export extension lists #75

Open RedAuburn opened 2 years ago

RedAuburn commented 2 years ago

This would allow people to share their extension setups and migrate between different PCs easier.

mjakeman commented 2 years ago

This is a really cool idea!

I've found myself needing something similar, so I'll look into it for 0.3

On a technical level, this would likely be a simple list of UUIDs. The user can click "Import" in the menu, we then resolve the extension data and display it similarly to the search results. The user will need to click "Install" for each extension manually, as that's a technical limitation of the DBus API we're using for installation.

I think it will be worth investigating a way to batch-install extensions. Being able to simply open a list and immediately have your entire extension setup synced over would be incredible.

mjakeman commented 2 years ago

A fun concept of how lists could work:

Going into "list mode" would reveal a pop-up sidebar and remove the toggles/buttons/arrows from the installed view (and replace them with drag handles). The user can drag and drop extensions into the sidebar and then export a list with their chosen extensions. There would be some kind of 'export all' button as well. On small screens, the user would drag the extension to a list icon or other drop target.

The user should be able to save/view/edit previously created lists, and ideally batch install them on another computer.

We should use a versioned file format. The first version will just contain a list of extension uuids. In future this could be extended to e.g. bundle extension preferences alongside extension names.

Not on the cards for 0.3, but maybe the version after that.

image

tacozMacleo commented 2 years ago

Question: Would it be possible to make this include the extension's configurations? Or is there no simple way for the program to keep track of it?!

Design: Do it not feel a little crowded with elements side by side? To get the design ideas rolling, I frankensteined your program: Hope you can ignore the non-centered & non-styled elements. export

Clicking the Import button opens a open menu, where you can pick the Shared Extensions file, after open it shows this. (Maybe without the description of the extensions, but was on the browse tab, so for consistency.)

import

hyuri commented 1 year ago

Oh import/export would be so handy right now that I'll be moving to a new installation. Especially if settings are also exported with the extensions. Came here to suggest. +1

nlogozzo commented 1 year ago

+1