Menu

AccelKeys

Russell Shilling

Accelerator Keys and GTK3

Today the accelerator keys are hardcoded. Each possible command has an entry in a list and the shortcut keys are defined in the code for many of them. There are additional shortcut keys that are used only in a limited set of different modes. This system means we can write manuals easily but does not take into account user preferences or abilities, special keyboards, etc.

GTK3 Capabilities

GTK3 has support for dynamic accelerators. The functions are described in a list and then a mapping is assigned (and can be reassigned). There are power functions to define all the sub-menu items in menu lists and functions to take user-friendly key descriptions and turn them into the values needed by the function. The map can be saved to and loaded from a file.

Proposal

Create a default set of mappings that mimic todays definitions. Allow the user to add to or override a sub-set of these functions and define their own extra mappings. Provide a Preferences UI to allow alteration of the mapping.

Today's mappings


MongoDB Logo MongoDB