1. Gnome Recipes
1.1. Common tasks in GNOME programs
Allow only a single instance of a program: see GtkApplication and GApplication.
- Put an icon in the trayicon
See GtkStatusIcon documentation and the GtkStatusIcon tutorial. GtkStatusIcon is available since GTK 2.10.
- How to write documentation/help for a program.
Parsing command line options: read the Goption documentation and this GOption tutorial (dead link).
Adding a configure option to specify a directory (with a default fallback), create that directory on 'make install' and use it from our code: self-explanatory patch
- Adding support to Drag and Drop files from nautilus into your application
look at GTK+ drag and drop documentation.
see this Evince bug report .
see the small patch adding drag and drop to Evince.
Brief description of how icon/mime-type association works.
Playing a sound in GNOME, you can do it with GStreamer.
Brief description about how kernel, udev, hal and GNOME play together for handling hotplug devices: see here and here.
1.2. Not so common tasks
Simple method for loading big data without blocking your interface or using threads in this article about lazy loading. Also available: lazy loading in python
1.3. Not GNOME-specific
How to gain then drop privileges (useful for suid programs)