..what hair extensions are for women. An *obligatory* accessory. The sooner they give better support in Extensions, the better the Gnome will be.
Apart from the still beta and hard to discover extensions page that Gnome runs, Extension developing isn’t either easy for contributors, in a way that Gnome doesn’t provide a good documentation about building a new extension or upgrade one from an older API (3.4) to a newer (3.6).
To discover extensions page you either have to read something-about in a blog, or install Gnome Tweak Tool that has a reference link. From my personal experience none knows about extensions till I told him/her about.
Even if you discovered Extensions page, is hardly usable with a very poor search and categorization totally missing. There is a “sort by” drop down -which is great- but this also doesn’t seem to work quite well, as it counts ( I think) results from all extensions versions (3.2 /3.4 /3.6). That is meaningless because Gnome version 3.2 from version 3.6 has huge differences, so something was useful in 3.2 isn’t necessarily popular in 3.6.
Today I run into another weird bug that I didn’t know about. I was looking for Xpenguin extension for Gnome 3.6. Extension page shows only extensions that are available for your GS, unless you use the switch:
Compatible with: All versions
I looked for it using the search field of the site. As I didn’t find anything I looked in an old review we had made and I found that link:
Regardless the extension wasn’t compatible with 3.6, it was installed normally and the “On/Off Switch” turned to On. Of course nothing happened and the extension didn’t even installed as it was said in GS Dialog Box. By the way the extensions you install through that page can be found at:
This a serious bug for new users and for pages that cannot give direct links to extensions. Because I didn’t trust the search in extension page I custom searched with Google:
(By the way you will find all Google Search Advanced Operators here)
Gave me an output
Which was cool as I didn’t know you could see the extension files online!
I know that Extensions isn’t the first priority for Gnome, (although IMO is the best part of Gnome3 ), but is a really shame that all the huge work that they have put on them goes kinda wasted because of the extension poor page.
Upgrading from 3.4 to 3.6
Many people are looking for documentation how to make compatible an extension with a newer GS. Sometimes these are people that haven’t write the original Extension, but they just want to fork an abandoned extension.
Giovanni Campagna (alongside with Jasper St Pierre are the maintainers of Extensions) gave some info in GS ML.
As far as API is concerned:
- OpenSearch and PlacesDisplay were removed
- the ViewSelector tab system was replaced with a simpler page API
- the screensaver is in process and accessed as Main.screenShield
- the session mode now changes at runtime (and this affect enablement of extensions)
- some modules were moved into js/ui/components/
- St.IconType was removed, so you need to add ‘-symbolic’ to icon names
- notifications, status items and search providers deal with GIcons,not icon names
- message tray sources can override the right click menu
- ConsoleKit/Systemd were unified as util.LoginManager
- input sources are stored in GSettings and affect IBus too
- the volume status indicator was split in the menu and the actual indicator
“With regards to UI and features, look at the release notes for the complete list. Probably there is something else I don’t remember, so just try running the old extension and see what breaks”.
Of course this is not a complete guide but it might help (Original Thread). According to Gio a completed Guide will be available sooner or later!
If you have any question about Gnome Shell developing you would have an immediate response in GS Mailing List, just register :)
Writing a GS Extension from Scratch
Apparently getting a new extension working is more straightforward process rather to upgrade one. Carlos Soriano update his guide “Step by step tutorial to create extensions” and hopefully that will be included in the official Gnome Documentation.
Happy Hacking :)