essembeh / gnome-extensions-cli

Command line tool to manage your Gnome Shell extensions
Apache License 2.0
102 stars 4 forks source link

Install extensions from GitHub #32

Open rauldipeas opened 1 month ago

rauldipeas commented 1 month ago

It's possible to implement something like this?

Since gnome.org is offline sometimes, would be great to have an command line option to install directly from GitHub releases or something like this.

essembeh commented 4 weeks ago

Hi this could be a good feature to implement. But the key feature of this project is to use dbus to tell gnome to install an extension.

Do you know if it is possible to install an extension from a GitHub repository with your browser?

An alternative would be to download the latest release zip from GitHub and install it with the file backend instead of the dbus backend... and to be honest I don't like this that much.

rauldipeas commented 4 weeks ago

I think that install from file is the only possible approach...

Why don't you like this? Some security concern?

essembeh commented 4 weeks ago

Not really for security reason, but more from a design point of view.

In Gext there are 2 backends with an abstraction (see here) to allow common actions with both backends: dbus backend if you are running a graphical session, file backend for ssh/tty sessions...

Having a feature only for one backend breaks this design a little ... but why not.

I would go for something like gext sideload https://github.com/foo/bar/release-v4.2.zip? I'm not sure for the sideload verb, but as exeplained, I don't want to reuse the install verb since this feature would only be available with the file backend.

rauldipeas commented 3 weeks ago

Great, I think it could be implemented in this way.

Instead of full path, maybe, you can use only gext github-install user/repo or something short like this.

essembeh commented 3 weeks ago

The problem with short url (like owner/repo for github) is that it is not easy to "guess" the zip url from it. I first thought using the main branch zip would be enough but some extensions need to be built / packaged... Moreover using the latest version might not be stable and not compatible with your current gnome version.

Do you have an example of extension you would like to install from GitHub as an example?

rauldipeas commented 3 weeks ago

I don't think this should be so abrangent.

It should have a disclaimer that work only on zip or tar.gz/tar.xz availiable extensions, ready for install through unpack.

That's my example list...

arcmenu

arcmenu@arcmenu.com

blur my shell

blur-my-shell@aunetx

debian-updates-indicator

debian-updates-indicator@glerro.pm.me

emoji copy

emoji-copy@felipeftn

extensions-sync

extensions-sync@elhan.io

forge

forge@jmmaranan.com

notification banner reloaded

notification-banner-reloaded@marcinjakubowski.github.com

pano

pano@elhan.io

status area horizontal spacing

status-area-horizontal-spacing@mathematical.coffee.gmail.com

tray-icons-reloaded

trayIconsReloaded@selfmade.pl

user themes

user-theme@gnome-shell-extensions.gcampax.github.com

essembeh commented 3 weeks ago

These extensions are available in the Gnome Extensions Website I guess. I would like to have an example of an extension you want to install from Github directly ?

rauldipeas commented 3 weeks ago

That's exactly my point, Gnome Extensions Website was offline sometimes on the past few weeks.

In this moments, there's no alternative to install extensions.