GNOME Love is the place to learn how to start contributing to GNOME. These pages are full guidance that will help you to become a member of the GNOME community. You can also get help from existing GNOME contributors and find tasks to get started on.

Getting Started as a GNOME Contributor

Welcome to GNOME! This is a great place to learn new skills, make friends, have fun and be a part of an inspirational Free Software project. This getting started guide explains the most essential things that you need to know to start participating and contributing.

Getting Help and Advice

To get further help and advice, please join us on the GNOME Love mailing list and IRC channel (#gnome-love on GIMPNet / irc.gnome.org). You can also contact nice folks who can provide informal mentorship for specific projects they are working on.

Development Guidance and Tutorials

  • GNOME Developer Center has up to date advice and tutorials on developing for GNOME. It provides quick guides on getting started in different languages and links to current developer documentation.

  • Newcomers tutorial has a step-by-step guide to the process of contributing to GNOME.

  • GNOME University started out in October 2012 to teach people how to contribute to GNOME in C. Feel free to join it.

Other resources can be found below.

General Resources

/!\ Please maintain consistency when adding a new reference to keep this page as clear as possible.

  • GTK+ and Glade3 GUI Programming Tutorial. An introduction to GTK+ and Glade3 development using C or Python.

  • Perl Gtk3 Tutorial. An introduction to programming in Perl with GTK3.

  • An outdated Getting Started Guide for those interested in developing with GNOME has not been updated for a few years. Warning: This guide mentions outdated technologies (CVS instead of Git, gconf instead of GSettings/dconf, libglade instead of Gtk, etc). A new guide is in the making for GNOME 3.6. The outdated guide currently contains:

    • Quick overviews of the important tools you need to use and websites you should be aware of
    • Programming tutorials in C, C++, Perl, and Python for using Glade/libglade and gconf (with gtk+ being learned along the way)
    • Debugging tutorials covering gdb, strace, and valgrind (specifically memcheck)
    • Detailed guide on building GNOME from CVS (use of jhbuild)
    • A "What in the world is that?!?" section to help explain all the cryptic but common tools, libraries, and filenames.
  • Capturing Stack Traces: If you are trying to fix a specific bug in GNOME that is a crash, this guide explains how to obtain a stack trace --one of the first important pieces of information needed in most cases to move towards fixing the problem.

Tips & Tricks




  • Matthias Warkus wrote a book covering the GNOME 2 desktop environment.
    {en} The Official GNOME 2 Developer's Guide (quite outdated)
    {de} GNOME 2.0: Das Entwickler-Handbuch

  • Andrew Krause wrote another book, dedicated to GTK+ 2 development.
    {en} Foundations of GTK+ Development

  • Havoc Pennington wrote a book in a tutorial style about developing GTK+ and GNOME applications.
    {en} GTK+/Gnome Application Development (ISBN: 0735700788) (partially outdated)

  • GNOME uses SGML with DocBook DTD for documentation (though we slowly move to Mallard). This free book by Norman Walsh and Leonard Muellner is a resource for learning DocBook.
    {en} DocBook: The Definitive Guide (ISBN: 1565925807)

  • GNOME uses Autoconf, Automake, and Libtool for building source. This free book by Gary V. Vaughan, Ben Elliston, Tom Tromey, and Ian Lance Taylor describes how to use these sometimes seemingly-arcane tools.
    {en} GNU Autoconf, Automake, and Libtool (ISBN: 1578701902)

  • The first published book on developing with GTK+ by Eric Harlow. A guide with examples and explanation.
    {en} Developing Linux Applications with GTK+ and GDK (ISBN: 0735700214) (might be outdated)

  • A book on CORBA programming that gives a great overall view of what CORBA is and how to use it. Even though it is C++ oriented, it maps over to C easily, but be sure that you have the CORBA C specification as well. Please note that CORBA/Bonobo has been deprecated in GNOME and new applications should not use this anymore but D-Bus instead.
    {en} Advanced CORBA Programming with C++ - by Michi Henning and Steve Vinoski. (ISBN: 0201379279)


GNOME Love Days

The underlying idea behind this, is to have one special day for a given task, for example finding bugs, or improving a specific part of GNOME... On this day, someone will stay on the #gnome-love irc channel to give some support and help you on this task.

Old Mentoring and Project Ideas


Attic/GnomeLoveDraft (last edited 2013-12-02 18:15:20 by WilliamJonMcCann)