In order to contribute to GNOME developing applications it is not required start from stratch which sometimes could be intimidating for newcomers. Also, looking specific parts of a big piece of code could intimidating to start with. While it is possible start using tools such as cscope, not everyone feels comfortable when is a beginner in a long live open source project.
The objective of this tutorial is to help to new potential GNOME's developers to get custom with the applications in GNOME Desktop that are user every day and show how easy and fun could be add them features or extend them getting results quickly.
For this tutorial I have choosen Nautilus and gEdit as applications to be extended. Nautilus, because the impact it has from day to day and because it is easy to mix them with small script shells, that normally everyone writes. And gEdit, because it allows to work with documents and it is possible to getting familiar with more complex widgets.
Suggested topics:
- A 5 minutes crash course of PyGTK+
- Overview of a plugin system
- Initialization/Registration
- How and when a plugin is called
- Structure of Nautilus plugins
- Overview of providers
- Working with columns in the List View
- Working with menus
- Contextual menus
- Background menus
- Adding actions to the toolbar
- Working with Property pages
- Helpers
- Integration with external programs/scripts
- Structure of gEdit plugin
- Starting with the integrated shell
- Working with Menus/UI Manager
- Working with documents
- Working with the side bar
- Defining options in a plugin
- Integrating applications with plugins and DBUS.
- Other applications (Gimp, gazpacho, etc.)
This tutorial only has sense if newcomers are expected to attend. People who want to start programming cool applications using GNOME and want to put their hands working and seeing results fast. Basically, this tutorial is beginner oriented.
According the time available for this tutorial it will have emphasis on Nautilus or Nautilus/gEdit/Other applications.