Customize Submenu Shortcuts?

I finally switched to 2.69 for work. One of the first things I noticed was that the options for the dissolve operation had been expanded. But along with that, the handy shortcut to dissolving and edge changed from X > D to X > I. That’s a big jump on the keyboard, and one which requires me to take my eyes off the screen.

Now, I know that as features are added/consolidated in future releases, the menus will be subject to change. In the past, Richard pointed me at the python file responsible for the order of the menus. This has made my life a lot easier. However, I can’t find a way to alter the letter being designated as the shortcut for a particular operation (in menu).

I’m not sure what to call this feature, so it’s a bit Google-proof for me, atm. But, is there a way to get to this data?

Thanks in advance!


I got some help from Olson on the IRC. It seems the answer comes in two parts:

Firstly, the letter corresponding to the menu entry is generated automatically, starting from the top. It prioritizes the first unused letter of the entry’s string (see image). If the first letter of the entry has been assigned to another one higher up, blender checks the second letter. If the second letter has been used, it checks the third, and so on.

Secondly, to use this principle to intelligently ‘assign’ a letter to an entry one must edit space_view3d.py (This can be found in Blender/2.69/scripts/startup/bl_ui/). You can either change the order of the operators in the menu, add a text argument, or both. Leading with the letter of your choosing can be an easy way to accomplish this, provided it hasn’t already been used.
E.g.

layout.operator("mesh.dissolve_verts", text="C Dissolve Vertices")

Thanks again, hopefully this can help somebody else looking into this obscure section of Blender.