gnome shell extension development environment

Hi gnome-shell-list,

I've recently started toying with writing my own extensions for the
gnome shell. I had a few progressing nicely in GNOME 3.2, but have
recently upgraded my OS which comes with GNOME 3.4.

The differences between these had led me to wonder - is there some
standard setup other extension developers use for developing their

At the moment I have a (personal for now) mercurial repository with my
extension and just the metadata.json, extension.js and stylesheet.css
committed. However in my quest to understand the differences between a
typical extension's code between 3.2 and 3.4, I had a look at to see how it was

I notice the whole makefile structure to the project, with the
'extensions', 'po', etc directories and where the metadata.json in the
actual extension folder are more template-like.
Also, I had a look at the gnome-shell-extension-weather repository on
github (& a few others) and notice a similar 'src', 'po', 'data',
'config' directories with the Makefile sitting outside these.

Is this the recommended way to set up a development environment for
extensions as opposed to just having the
'folder/{extension.js,metadata.json,stylesheet.css}' structure? How do
I go about setting this up for my own extensions (& do you do one
repository for all your extensions, like, or one setup
per extension, like gnome-shell-extension-weather?). I like the
'folder/{extension.js,metadata.json,stylesheet.css}' structure because
then when I move between computers it's simple to "install" the
extension - just copy the entire folder. If I move to the Makefile
environment, I feel this makes installation/distribution harder
because potential users have to make/make install to make sure the
schema (for the settings) & similar get installed properly - or is it
just as simple, but just something I don't understand? Would you just
do a `make zip-files` & upload the zip to the repository page for
users who do not want to build the extension?

Thanks for your insights - I'm just exploring options as to how to set
up a "good" development environment for extensions that I want to
fiddle with.


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