Proposed GNOME Goals

Please list here your ideas for future GNOME Goals (put the ones drafted/ready on top), and help sorting Goals into categories where appropriate to help keep the list manageable.

../Template is used as a template for each new GNOME Goal page.

To add a new GNOME Goal using the template, modify this URL:

/!\ Warning: These are just ideas, and not approved for project-wide application. Even when drafted, they should not be applied before they are officially turned into a GNOME Goal.

Remember: GNOME Goals are "small concrete goals that we should all try to achieve". Good GNOME Goal candidates are:

  • Small: This is a little vague, but Goals should be small enough that they aren't daunting to implement.

  • Well-defined: You should be able to tell exactly what needs to be done for a given module. (eg, "migrate from popt to GOption", not "improve command-line parsing"). It should be objectively verifiable whether or not a given module has achieved the goal. (Nebulous ideas like "improve keyboard accessibility" can be turned into better GNOME Goal candidates by coming up with specific subtasks. Eg, "Make sure all menu items have accelerators".)

  • Broadly applicable: The Goal should be relevant to "most" modules in GNOME (or at least "most applications" or "most libraries" for some Goals). If the idea is only relevant to one or two modules, don't try to start a GNOME Goal; just file bug reports against those one or two modules.

  • Non-controversial: The patches are going to have to be accepted by the individual module maintainers; don't suggest something as a Goal that maintainers are likely to reject. (Convince people first, then propose the Goal.)

Unsorted proposals

Accessibility (a11y)

  • Improve keyboard only access of all desktop applications by unplugging the mouse and working using only keyboard navigation.
  • Improve pointer access (mouse, pen, etc). Using only your pen or mouse (one button, preferably) you can help improve the accessibily of Gnome using special devices and also the general usability.
  • Test every Gnome desktop and platform app for accessibility, with at-poke, orca, and gok.
  • Ensure that new widgets have usable ATK implementations when they are incorporated into Gnome.
  • Ensure that every component in the desktop release with a presence on the Applications, Places or System menu has an equivalent high constrast icon in the HighContrast-SVG theme.

User Interface

  • drag and drop to trash = delete.
  • In order for Metacity, Devil's Pie, AWN, etc to do window matching correctly, the WM_WINDOW_ROLE property should be set on an application's windows. At present this is almost never done. Window matching is commonly asked for, but very few programs use WM_WINDOW_ROLE correctly (the GIMP is a good counterexample). The change is a matter of a single line per window. explains in more detail.

  • Make applications remember and retain their position, size and state of maximization upon the next runs. (Especially usefull with File save dialog & lots of files and folders)

  • Make Applications follow the best practice to install app-specific but themeable icons -- ThemableAppSpecificIcons.

  • Ensure all application toolbars behave well in "text beside icons" mode. This mode should place text beside the most 'important' toolbar icons (see HIG for details), with tooltips available if the meaning of the others is still unclear. But right now, many apps have no text beside any icons in this mode, and/or no tooltips available on their toolbar buttons either.
    • Should also make sure that all toolbars respect the system-wide toolbar mode setting (and optionally offer a way to override it)
  • Make sure print-to-file has sane filenames: ../PrintToFile

Human Interface Guideline (HIG) compliance

  • Keyboard shortcuts consistent among all applications (HIG Audit). I.e. next tab, new tab, copy-paste, search, etc
  • Same behavior on minimize and close. I.e. when a user clicks on the minimize or close buttons applications should behave consistently in the way they minimise, close, or iconify in the notification area.
  • s/Close/Finish/ where it makes sense?
  • Allow much more windows to be closed with ESC or ENTER.
    • OlavVitters: If this is about dialogs then it should be changed in HIG, then gtk+. I recall Novell has a patch (max 3 line) for it.

  • Allow to override the toolbar appearance (see Make sure applications follow Desktop wide toolbar preferences.

  • speak the same language as the users: s/cursor/pointer when talking about the mouse, s/capplet/preference tool/ (more of a behaviour thing than a goal?). (AlanHorkan: Raise awareness of Gnome documentation style guide and how it fits with general usability?)

  • encourage use of stock labels that come with stock items (for better consistency, easier localisation)


  • Constify all static data and similar memory reductions.
  • Audit the private rss memory usage of all core gnome libraries. For details of how to do this see here and here.

  • Identify more shared/shareable memory regions and propose a solution to make them shareable and reduce application startup cost without folding various processes into a single one
  • improve the use of timers in apps (see ryan lortie's entry )

Under the hood

  • Put BugBuddy reports in a crash database, not in Bugzilla. This is to increase the Bugzilla SNR--ie. make Bugzilla mail actually valuable to maintainers.

  • Update all modules to automake 1.9, fix all the AC_DEFINE warnings, and generally update the configure.{in, ac} script. This will also work around this intltool bug using distcheck forever. -- BehdadEsfahbod

  • Make sure apps use newer APIs rather than deprecated APIs (see BestPractices)

    • Migrate recent files management from EggRecent to GtkRecent for all GNOME apps

    • Migrate from EggTrayIcon to GtkStatusIcon (see the dependencies on this bug)

    • Migrate from GnomeDruid to GtkAssistant

    • Migrate from libgnomeprint to the GTK+ printing framework
    • Use g_timeout_add_seconds(N) rather than g_timeout_add(N*1000), to minimize wakeups and save power

    • Don't play with setlocale to change the behavior of libc functions. Use locale-independent methods like g_ascii_strtod.

  • deprecate gnome-mime-data, so translator can stop doing translation on. Any solution for gnome-vfs? it seems still need some deprecate function of gnome-mime-data.
  • Audit .desktop files whether they have the right categories and bugzilla information including version present, the Version key and other important keys defined in the spec, install them in /usr/share/applications/gnome (see definition of <AppDir> in the menu spec)

  • create a doap file (we should come up with a name template for it, so we can automatically use them. something like DOAP in the top level for example.
  • Networkmanager-ification: Applications which access the internet could/should use network manager to check network status
    • also, verify that all such apps use the proxy settings
  • Dbus-ification: Where appropriate add Dbus interfaces to applications and maybe even with some level of consistency between them. For example all media apps with dbus interfaces should export the identically named play and pause methods.
  • Libnotify-ification: Update the HIG so that applications can use libnotify and the notify popout baloons where appropriate in their applications
  • HALify gnome-pilot
  • Desktop-wide XDS ( support!

  • Add preview widgets in file choosers, allow non-local uri in file choosers, etc.
  • Audit files to put headers in noinst_HEADERS instead of foo_SOURCES, so they get regenerated correctly. (see

  • Replace SexyIconEntry by GtkEntry icon functionality (available in GTK+ 2.16): See ../DropLibsexy

  • Replace SexyUrlLabel by GtkLabel URL functionality (available in GTK+ 2.17): See ../DropLibsexy

  • Make builds faster and prettier with dolt and shave: ../NicerBuilds

  • Replace intltool usage by gettext (>= 0.19) and itstool (see example).


  • GnomeDocUtilsMigration, migrate the individual help files too.

  • Document all GConf Keys (particularly the ones that are not listed in the applications preferences or config applet)
  • Documentation audit. Are the docs in the same place in cvs. Are they quality. Do developer docs exist. While perhaps not an achievable goal an audit of this would be good
  • Update obsolete document, some document in GNOME are 2.8 while we are at 2.14.
  • Brush up gtk-doc API docs. Make them use modern gtk-doc features. See DocumentationProject/GtkDocGnomeGoal for deatils.


  • Fix all (or as many as humanly possible) crasher bugs
  • Great "review all patches" campaign (see also PatchSquad). Rotting patches discourage newcommers to contribute and are a barrier to involvement

  • Update project website and make sure all projects have a page on live.g.o, possibly pointing to their homepage. Create a template for such pages on the wiki, including link to mailing list, bugzilla, and cvs... (note that bugzilla should already have the homepage for the product in the product summary page, though very few modules have set it to anything)
  • jdv: Agree on and implement a method to allow applications, themes, plug-ins, &c. to install their files only in /opt or in the user's home directory (~/.opt ?) while still integrating nicely into the desktop. For example, let gedit load plugins from /opt/*/plugins/gedit, have gdm detect themes from /opt/*/themes/gdm, have the panel load .desktop files from a similar path, and allow gconf schemas to likewise be stored outside /etc.


  • This user has some very good ideas, especially the Phone and LUKS integration (which btw Fedora Core 5 has already integrated): 40+ Suggestions for Improving GNOME

    • Also from the user who made the 40 suggestions to a better desktop "Multiple data reduction based on standards". There could be made some drafts that the Gnome people give to Very much needed for contacts (but isn't Project Soylent aiming for that? (Project Soylent is a dead project, unfortunately --TravisReitter, one of the founders))

  • give users info about ink status so you can really start using a printer on GNOME, because otherwise you never know what ink cartridge is empty. There are many small tools, but no global GNOME interface for it. s.a. GnomePrinting

  • create a full list of all CVS modules, with descriptions, and also with the associated bugzilla products, and for apps, with the menu location of the app, its teminal command, and its appid. (And any other of the multitude of names an app has.) Then think about ways in which this can be made more consistent.
    • Also mark modules which are not longer in use as obsolete because there are many gnome CVS modules which have not been used for years.
  • Review the product summary page on Bugzilla. Check that a user looking for a particular application or element of GNOME (eg pref tools) can easily find it. Ideally, the first occurrence of the name of the app should be the link, so a user can use their browser's find-as-you-type effectively.
  • ./configure --disable-scrollkeeper should _REALLY_ mean don't run scrollkeeper-update, not just pretend to disable it
  • verify all source files to make sure they have a license and a copyright, and that both are up-to-date


I really think the time shedule of one goal in two weeks needs to followed. Even if older gnome goals aren't finished. Or maybe organize a day before the next gnome goal. On that day all developpers would be in a irc chatroom and discuss who is doing what and live it like there is a gnome release the next day. The idea after gnome goals is very good (a lot of small changes but consistent). Especially for beginning developpers and maybe even users.

* My idea is to make a crash handler for gnome to handle crash while any xorg or any fglrx conflits. Also, in any case gnome should take user to gui interface instead of command line.

Initiatives/GnomeGoals/Proposals (last edited 2014-06-04 01:54:03 by DaikiUeno)