GNOME Goal: Port to GMenu

Since GNOME 3.4, applications have been able to specify their own GMenu (or 'application menu'). In the interests of consistency, all GNOME applications should provide a similar set of items in their application menu.

Guidelines

Each application's app menu should contain an appropriate set of items. This requires that they use GMenu and have been ported to GtkApplication.

Application Menu Design

For simple applications with a small number of menu items, it shouldn't be too hard to port the entire menubar to the app menu (see bug 674529 for an example). If the application has a complex menubar, simply ensure that a small number of key items are moved to the app menu:

New Window
---
Preferences
---
Help
About
Quit

If there are a small number of global application options (eg. Connect to Server in the case of Nautilus), they can also be moved to the GMenu. In general, try to avoid overpopulating the menu or disrupting existing menu bar structures.

Feel free to consult your friendly local GNOME designer if you are uncertain about which items to put in the GMenu.

Comments before approval

GNOME was criticised for inconsistent use of GMenus in reviews of the 3.4 release.

Status of this goal

/!\ Note: Updated automatical stats can be found at http://people.gnome.org/~fpeters/reports/port-to-gmenu.html

{i} Tip: If you choose to work on a module, create the bug report on the GNOME bugzilla for the relevant module, and make it block bug 674957. This way people will know someone already works on it, and won't duplicate the work you're doing.

State

Markup

todo

<: #ff8080> todo

patch

<: #ffcc50> [[GnomeBug:xxxxx|patch]]

done

<: #80ff80> [[GnomeBug:xxxxx|done]]

not needed

<: #80ff80> not needed

Above are the states and corresponding markup to update the modules state table below.

Tarball

Status

core

at-spi2-core

not needed

at-spi2-atk

not needed

dconf

not needed

evolution-data-server

not needed

glib-networking

not needed

gnome-bluetooth

not needed

gnome-online-accounts

not needed

gnome-control-center

done

gnome-desktop

not needed

gnome-icon-theme

not needed

gnome-icon-theme-extras

not needed

gnome-icon-theme-symbolic

not needed

gnome-keyring

not needed

gnome-menus

not needed

gnome-packagekit

done

gnome-power-manager

not needed

gnome-screensaver

not needed

gnome-session

not needed

gnome-settings-daemon

not needed

gnome-shell

not needed

gnome-themes-standard

not needed

gsettings-desktop-schemas

not needed

gvfs

not needed

mousetweaks

not needed

mutter

not needed

network-manager-applet

not needed

pulseaudio

not needed

telepathy-mission-control

not needed

core-utilities

baobab

done

brasero

to do

empathy

done

eog

done

epiphany

done

evince

done

gcalctool

done

gnome-contacts

done

gnome-dictionary

done

gnome-disk-utility

done

gnome-font-viewer

done

gnome-screenshot

done

gnome-search-tool

to do

gnome-system-log

done

gnome-system-monitor

done

gnome-terminal

done

gucharmap

done

nautilus

done

sushi

not needed

yelp

done

core-extras

gnome-background

not needed

gnome-user-share

not needed

vino

not needed

gnome-user-docs

not needed

core-fallback

GConf

not needed

gnome-panel

not needed

metacity

not needed

notification-daemon

not needed

core-os-services

accountservice

not needed

avahi

not needed

ConsoleKit

not needed

dbus

not needed

gdm

not needed

NetworkManager

not needed

PackageKit

not needed

polkit

not needed

upower

not needed

core-deps

atk

not needed

atkmm

not needed

cairo

not needed

cairomm

not needed

cantarell-fonts

not needed

caribou

not needed

clutter

not needed

clutter-gtk

not needed

clutter-gst

not needed

cogl

not needed

dbus-glib

not needed

dbus-python

not needed

desktop-file-utils

not needed

enchant

not needed

expat

not needed

farsight2

not needed

folks

not needed

fontconfig

not needed

gamin

not needed

gnome-js-common

not needed

gtksourceview

not needed

gdk-pixbuf

not needed

gjs

not needed

glib

not needed

glibmm

not needed

gmime

not needed

gnome-doc-utils

not needed

gnome-video-effects

not needed

gnutls

not needed

gobject-introspection

not needed

gst-plugins-base

not needed

gst-plugins-good

not needed

gst-plugins-farsight

not needed

gstreamer

not needed

gtk+

not needed

gtk-doc

not needed

gtkmm

not needed

gudev

not needed

hicolor-icon-theme

not needed

icon-naming-utils

not needed

iso-codes

not needed

itstool

not needed

intltool

not needed

java-gnome

not needed

js185

not needed

json-glib

not needed

libatasmart

not needed

libcanberra

not needed

libchamplain

not needed

libcroco

not needed

libdaemon

not needed

libdiscid

not needed

libgpg-error

not needed

libgcrypt

not needed

libgee

not needed

libgdata

not needed

libgnome-keyring

not needed

libgnomekbd

not needed

libgsf

not needed

libgtop

not needed

libgweather

not needed

libical

not needed

libmusicbrainz

not needed

libnice

not needed

libnotify

not needed

liboauth

not needed

libpeas

not needed

libproxy

not needed

librest

not needed

librsvg

not needed

libsigc++2

not needed

libsndfile

not needed

libsoup

not needed

libtasn1

not needed

libwnck

not needed

libxklavier

not needed

libxml2

not needed

libxslt

not needed

mm-common

not needed

nspr

not needed

nss

not needed

p11-kit

not needed

pango

not needed

pangomm

not needed

pixman

not needed

polkit-gnome

not needed

poppler

not needed

py2cairo

not needed

pygobject

not needed

rarian

not needed

seed

not needed

shared-mime-info

not needed

sound-theme-freedesktop

not needed

speex

not needed

sqlite3

not needed

startup-notification

not needed

telepathy-glib

not needed

telepathy-logger

not needed

telepathy-farsight

not needed

totem-pl-parser

not needed

tracker

not needed

vala

not needed

vte

not needed

webkit

not needed

yelp-tools

not needed

yelp-xsl

not needed

zenity

not needed

libnl

not needed

lcms2

not needed

colord

not needed

apps

accerciser

to do

aisleriot

done

anjuta

done

cheese

done

devhelp

done

evolution

to do

file-roller

done

gedit

done

glade

to do

gnome-color-manager

to do

gnome-devel-docs

done

gnome-documents

done

gnome-games

in progress

gnome-netttol

to do

nautilus-sendto

not needed

nemiver

to do

orca

to do

rygel

not needed

seahorse

to do

totem

done

vinagre

to do

other

almanah

done

banshee

to do

gnome-boxes

done

hitori

done

firefox

to do

gimp

to do

gnote

done

inkscape

to do

libre-office

done

rhythmbox

done

simple-scan

done

sound-juicer

done

thunderbird

to do

tomboy

to do

transmission

patch

x-chat-gnome

to do

Initiatives/GnomeGoals/PortToGMenu (last edited 2014-10-11 20:20:41 by SébastienWilmet)