Good question.
First of all, the appindicators are not Unity specific in any way. Actually, they run just as well on Xfce or KDE. It's very, very, simple to use. You'll create an indicator object, set the name of icons to use when it needs attention, etc, and simply attach menus to it. The indicators are then sent over dbus and properly displayed in a manner suitable for the current desktop environment. In Unity, Gnome Shell, Xfce and LXDE, it'll be displayed as GTK menus, and in KDE it'll be displayed as Qt menus, etc. Very neat. You can find more information about it here: http://unity.ubuntu.com/projects/appindicators/
In the right pane of Glade, you have a Signals page under Properties. Here you can simply type the name of the method to use as handler for that signal. In your code, you'll just create a gtk.Builder object, load the XML that Glade produces and use the gtk.Builder.connect_signals method to connect all your signals to their methods. This means you can use Glade interfaces in almost any programming language. Since that is so easy, and since languages are different by nature, it makes little sense to add coding to Glade itself. For coding Python (and other languages), I will recommend having a look at Geany ( http://apt.ubuntu.com/p/geany). It is a very good editor/IDE.
Other things in Unity are so new, there is little documentation, except as code examples. Some of the APIs are just now becoming stable, such as for Scopes and Lenses, which weren't even called that a little while ago. As a beginner, I'd wait a little bit before looking into those things.
The entries on the launcher, are actually just referred to as LauncherEntry in code, and it can use a progress bar, a counter and QuickLists. I haven't actually coded that myself, but this page has an example and it seems very easy, like the rest of the Unity APIs: http://bazaar.launchpad.net/~unity-team/libunity/trunk/view/head:/examples/launcher.py
This is my trial code for gtk3 and appindicator which creates a indicator for GPaste.
Basically,
from gi.repository import AppIndicator3 as AppIndicator
in order to use appindicator for gtk3 applications which is provided by package gir1.2-appindicator3
.
Here is the AppIndicator3 documentation.
pygtk will be deprecated for Gtk3 and you have to go through GObject-Introspection route for developing Gtk3 applications in python. You can refer to PyGObject documentation. Instead of
import pygtk, gtk, gdk, gobject, pango
etc you should do
from gi.repository import Gtk, Gdk, Pango, GObject
For studying a working code, you could view Kazam which has moved to gtk3 from gtk2 and uses appindicator3.
There is a package gir1.2-appindicator
as well which seems to be same as using python-appindicator
as they both provide usage for gtk2 appplication which is:
from gi.repository import AppIndicator
OR
import appindicator
Some information in this blog post as well.
Best Answer
Yes, in fact it's almost exactly the same:
Many smaller programs will take little effort to convert. You can start by switching to gobject introspection using the following two lines, and then correct any errors by looking them up in the reference.
For example,
gtk.RESPONSE_OK
will be calledGtk.ResponseType.OK
when you're using introspection.