GNOME 3 introduced what I think is a really cool concept: The global application menu.
As you can see, it's clean and modern, and reminiscent of Android's menu button. It just has a ton of problems right now.
- It's not discoverable. It looks like a Windows XP style taskbar entry. Those only have the option to close the window or perform window functions like maximizing. And sure enough, "Quit" is the only option available in most apps which run on GNOME, or even on earlier versions of core GNOME apps.
- It's not complete. Core GNOME apps like Totem and Web have so many menu options that they don't all fit in the "app menu." Because of this, they use either a classic Windows-style menu bar or a "Chrome wrench" style menu button (which is now a core GTK+ widget).
- It's inconsistent. I'm not aware of any design document explaining when to use what, and my understanding of how it works keeps getting broken. For instance, I'm used to the app menu replacing a Windows-style menu bar, so when I saw that Totem had the latter I ended up driving myself to frustration trying to find its Preferences dialog, before clicking on the app menu and finding it there.
The only guideline I'm aware of is that in multi-window apps, the app menu is supposed to apply to all of them, while the Chrome-style menu button is supposed to be for the one window. But I only heard that second-hand.
Where and when did we explain our design decisions to GNOME users and developers? How many of them are aware?Un-breaking the app menu
Here's my proposal for how to make it work, based on the expectations I formed while using and developing with it.
But why have an app menu at all, then?
- Explain the app menu to users. Every modern OS has a friendly introduction which explains the most basic, non-obvious concepts. For GNOME, this could be as simple as a single-screen "Welcome to GNOME" app, which helpfully points out the Activities screen, notification bar, and app menu.
- The app menu has the most basic options. An app always has one, and it always has the core, global functions in it: "About," "Preferences," and "Quit."
- Other menus have All The Options. People who are used to them expect that a Windows-style menu bar, or a Chrome wrench style menu button, will have a complete listing of the app's functionality. If an app has either of these (and modern GNOME apps should prefer the GTK+ menu button to space-eating Windows-style menus), it will contain all of that app's options, including the ones in the app menu. This makes GNOME more accessible and less frustrating.
Because it's a better way of doing things. It's simpler for users and developers, it's much more attractive and elegant, it's easy to remember once you've been shown, and it echoes the functionality of a modern OS (Android) in much the same way that GNOME's legacy menus mimic those of a legacy OS (pre-Windows 8).
Plus, it makes the apps themselves look much cleaner and take up less room on small screens.
Ideally, the App Menu will contain all of a given app's functionality. This is the assumption new GNOME apps (like Documents) are building on, and the one certain existing apps (like Empathy) are adopting.
The App Menu is the future that we are transitioning towards. Let's make it as painless as possible for users and developers, by adopting guidelines that get rid of frustration.