GNOME Developer Tutorials

In this section you will find tutorials for creating GNOME applications, applets, components, and more.

We have tried to provide PostScript versions for you to print where applicable. If there is a tutorial that is kept off-site and has no PostScript, please contact the author.

Joining the GNOME Project

If you are considering joining the GNOME Project and would like help finding out how to contribute, who to contact, or how to get started, read Joining the GNOME Project.

Tutorial Topics

Tutorials are available that cover the following areas:

Developer Platform:
Bonobo, GConf, Glade, Gnome Canvas, GnomeVFS GObject, Gtk+, libxml, libxslt, ORBit, Pango,
Desktop:
Gnome 2, Gstreamer, Metacity, Panel Applets, Scrollkeeper
Miscellaneous:
autoconf/automake, CVS, Internationalization, gDesklets, Gnome Icons, Michael Meeks on C

autoconf/automake

Mark Galassi's autoconf tutorial
Shimaki Matsubara's Japanese autoconf/automake tutorial
Online version of GNU Autoconf, Automake, and Libtool from New Riders.

Bonobo

Dirk-Jan C. Binnema wrote a tutorial On Writing A Bonobo Control.
Part 1 of Michael Meeks' Introduction to Bonobo series: Bonobo & ORBit
Part 2 of Michael Meeks' Introduction to Bonobo series: Basic Bonobo use
Part 3 of Michael Meeks' Introduction to Bonobo series: Implementing a new component

CVS

Tom Tromey's tutorial on how to import a new GNOME project into the CVS tree.
Shimaki Matsubara's Japanese CVS Tutorial.
Browse the manual from CVS Home.

gDesklets

Martin Grimme's How to Make Desklets

GConf

Mikael Hallendal and Richard Hult (of Imendio) wrote: Introduction to GConf and GnomeVFS.
Havoc Pennington's article on Gconf online or a PostScript copy.

Glade

Rikke D. Gile's Graphical Interface Development with Glade2.
Eddy Ahmed wrote an introductory tutorial, Developing GNOME Apps With Glade, a Tutorial for writelinux.com.
Ishan Chattopadhyaya wrote an introductory tutorial, Starting off in Glade/GTK+.
Glade ships with a FAQ, a Turbo Start guide, and a manual that are accessible from the Help menu.

GObject

Mathieu Lacage's GObject tutorial. (pdf)

Gnome 2

Mikael Hallendal and Richard Hult (of Imendio) wrote Getting ready for GNOME 2, Part 1, for IBM developerWorks' Linux Zone.
Daniel Robbins (of Gentoo Linux) wrote follow-on article GNOMEnclature: Getting ready for GNOME 2, Part 2, for IBM developerWorks' Linux Zone.
Malcolm Tredinnick's Porting applications to the GNOME 2.0 platform.
GNOME Accessibility for Developers
GNOME Human Interface Guidelines (1.0)

GNOME Canvas

George Lebl wrote a nice tutorial, GNOMEnclature: Livening things up (Graphics made easy using the GNOME Canvas),for IBM developerWorks.

GnomeVFS

Mikael Hallendal and Richard Hult (of Imendio) wrote: Introduction to GConf and GnomeVFS.
Mikael Hallendal and Richard Hult (of Imendio) wrote Writing GnomeVFS Modules, for IBM developerWorks' Linux Zone.

Gnome Icons

Jakub Steiner's Gnome Icons Tutorial.

GStreamer

Application Development Manual ( PostScript | pdf )
Plugin Writer's Guide ( Postscript | pdf )

Gtk+

For a start you should take a look at the GTK+ 2.0 Tutorial
Tim-Philipp Müller's GTK+ 2.0 Tree View Tutorial. (tar.gz | pdf | docbook)
Havoc Pennington's mini FAQ on Setting Colors in Gtk+
Shimaki Matsubara's Japanese GTK Tutorial.
A Korean GTK+ tutorial.

Internationalization

Malcolm Tredinnick has written an excellent document, called Internationalising GNOME applications, that explains the process of adding translation support to an existing GNOME application.
Shimaki Matsubara's Japanese gettext Tutorial.
Christian Rose's L10N Guidelines for Developers.

libXML

James Henstridge wrote the "Using the SAX Interface of Libxml" tutorial that gives an explanation of what the SAX interface of libxml is, when you might want to use it, and how to write parsers with it. It is a good idea to read this if you are planning on making your application use XML to read/write data. HTML | PostScript.
The home page for the libxml (gnome-xml) project has some useful links and information.
John Fleck's libxml tutorial

libxslt

John Fleck's libxslt tutorial.
libxslt home page.

Metacity

Glynn Foster (of Sun Microsystems) wrote a nice tutorial, Creating a Metacity Theme.

Michael Meeks on C

Part One
Topics: Fatal Instinct: Bad List Iteration, A Good Pattern: Good List Iteration, Pitfalls With GHashTable
Part 2
Topics: Good Taste and Readability, BonoboXObject: Real World Usage, Inheriting vs. Aggregating
Part Three
Topics: Forward Declarations, Porting Code to Gnome 2.0, Avoiding Re-Entrancy Bugs, Dereferencing Function Pointers, Electric Fence

ORBit

Ewan Birney has information on using ORBit (the CORBA implementation used by GNOME).

Panel Applets

Read Gergo Erdi's tutorial on Writing GNOME panel applets using the GTK+/GTK-- widget set. HTML | PostScript (Gnome 1.x)
Andrew Burton's tutorial on Writing GNOME panel applets in Gnome2.

Pango

Tony Graham's The Pango Connection: Part 1.
Tony Graham's The Pango Connection: Part 2.

Scrollkeeper

Dan Mueth's Writing ScrollKeeper OMF Files V1.0.

How You Can Help

If you would like to contribute a tutorial, refer to the Developer Documentation Project page.

Users · Developers · ViewCVS · FTP · Bugzilla · Software Map · Contact