Accelerator maps are used to define runtime configurable accelerators.
Functions for manipulating them are are usually used by higher level convenience mechanisms like UIManager and are thus considered “low-level”. You’ll want to use them if you’re manually creating menus that should have user-configurable accelerators.
An accelerator is uniquely defined by: - accelerator path - accelerator key - accelerator modifiers
The accelerator path must consist of “<WINDOWTYPE>/Category1/Category2/.../Action”, where WINDOWTYPE should be a unique application-specific identifier that corresponds to the kind of window the accelerator is being used in, e.g. “Gimp-Image”, “Abiword-Document” or “Gnumeric-Settings”. The “Category1/.../Action” portion is most appropriately chosen by the action the accelerator triggers, i.e. for accelerators on menu items, choose the item’s menu path, e.g. “File/Save As”, “Image/View/Zoom” or “Edit/Select All”. So a full valid accelerator path may look like: “<Gimp-Toolbox>/File/Dialogs/Tool Options...”.
All accelerators are stored inside one global AccelMap that can be obtained using @get. See Monitoring changes for additional details.
Saving and loading accelerator maps
Accelerator maps can be saved to and loaded from some external resource. For simple saving and loading from file, save and load are provided. Saving and loading can also be done by providing file descriptor to save_fd and load_fd.
AccelMap object is only useful for monitoring changes of accelerators. By connecting to changed signal, one can monitor changes of all accelerators. It is also possible to monitor only single accelerator path by using it as a detail of the changed signal.