Almost all Gnome applications should support a common set
of features. This checklist summarizes the most important
ones. Always remember: Gnome is a direct response to the
problem of application heterogeneity in the X environment,
and one of the most important goals of any Gnome
application should be look-and-feel consistent with other
Gnome applications, starting with the source code seen by
programmers and ending with the spiffy GUI you present to
Create a standards-compliant source tree. Use the Gnome
autoconf macros, or the
gnome-config script, to
reliably locate the Gnome libraries and header files.
Include a README describing
Include the standard INSTALL
file describing how to compile and install the package;
change the standard file to reflect anything specific
to your application.
Include a copyright, in a file called COPYING.
Internationalize your application with GNU gettext and the standard C library
Include the intl directory
with your application, so users can build the
application without having
gettext. Include intl in
your header file search path.
Define the G_LOG_DOMAIN
preprocessor symbol to identify the origin of glib
Define the GNOMELOCALEDIR
preprocessor symbol so Gnome can find translation
Install a .desktop file so
your application will appear on the Gnome desktop's
Install help files along with
topic.dat files so the Gnome help browser can
Be sure the make distcheck
target works; this is will catch many common makefile
Set up a popt argument
parser; at a minimum, you will probably want to support
a --geometry option.
All configuration should be possible via the GUI; the
easiest way to achieve this is with the Gnome
Your application should support session management; at
a minimum, it should save and restore the currently
If appropriate, use the
GnomeApp for your main document windows; this
widget gives Gnome applications a consistent
to set the class hint on your windows, so users can
customize how window managers treat them.
Use GnomeUIInfo to
create menus and toolbars; when appropriate, use the
Gnome macros for standard menu items.
Add a status bar to display hints for the menu items,
and any other status your application has to report.
Use GnomeDialog and its
subclasses for your dialogs.
Add online help, including tooltips and documentation
for display in the help browser.
Keep a ChangeLog detailing
changes to your source code. This will help other
people understand the evolution of the application, and
help you understand why you made certain changes years