How to start writing Gnome Shell extensions

lzap picture lzap · Nov 28, 2011 · Viewed 12.6k times · Source

I have found it's very hard to find documentation about Gnome Shell Extensions. I found some bits on Gnome Wiki (and it's first-level links), but it's not much:

http://live.gnome.org/GnomeShell/Extensions

The problem here is GJS and it's bindings. Absolutely no documentation, got lot's of SIGSEGVs, binding is just not ready (GLib, Gio and others). The only working one is unofficial documentation generated from GIR for Seed JavaScript implementation:

http://roojs.org/seed/gir-1.2-gtk-2.0/seed/

Where to get more examples? I want read directories, files, spawn processes, open network sockets and do other stuff.

Update: Show me how to read a file line by line in GJS. According Google this is not possible. Thanks.

Answer

gpoo picture gpoo · Nov 29, 2011

GNOME Shell uses GJS, not Seed. There are some differences among both of them, and it might explain why you are having problems.

With GOBject Introspection you can read the documentation for the original library and adapt the signature of every method/function to the language you are using.

In your particular case, for files, networking, etc. you might want to check GIO. You can check the Platform Overview to check what else is available. You also can check some examples (not extensions, though) in JavaScript.

At last but not least, very soon a website with extension will be launched.