3.6 Feature Proposal: Extension Hook Support and Updates



Hey, I'm sort of new to this, so maybe this isn't the best feature
proposal ever. Sorry.

I'm quite sure you all know what GNOME Shell Extensions are, and how
they're a great boon for this platform. If you haven't seen the GNOME
Shell Extensions repository and the wide variety of extensions
available (or only checked it out on day one), you might want to check
it out now, as the collection as ever growing. Here's two that I have
on my machine right now:

  https://extensions.gnome.org/extension/55/media-player-indicator/
  https://extensions.gnome.org/extension/212/advanced-volume-mixer/

Anyway, the extensions community has always been sort of distant from
the core GNOME community, and I always feel bad for them.

Extension updates are exactly what it sounds like. Right now, you have
to manually update your extensions. There's a green update button for
each updateable extension on the Installed Extensions page, and the
update experience is quite poor: Click the green update button, wait
for the existing extension to uninstall, wait for the extension to
download, press "OK" on the installation dialog, rinse, repeat. I'm
going to propose to update extensions automatically, pinging back to
http://extensions.gnome.org/ every week or so with the installed
extensions, and updating extensions if there's an upgrade. [0]

As for the "Extension Hook Support", I want to get consensus of a
policy that we won't reject a patch that allows an otherwise
tricky/dirty/impossible hook into the Shell or Mutter for extensions
use, after passing the standard code policy purposes. I've seen a few
patches rejected because "we don't support extensions", but I'd like
to change that.

Extensions are a powerful story going into the future, and I think we
should try to exploit that and help out the people helping our future,
rather than fight it.

[0] I've always felt bad in that we're half reinventing a package
manager, but for a specialized case. If anyone knows a sort of package
manager like thing that only requires the home directory, can do all
the things that package managers can do, and has an API I can use from
the Shell and browser-plugin (C API, basically), I'd like to look into
depending on it, replacing our own home-rolled equivalent.

-- 
  Jasper


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]