Here's the schema I've settled on:
<keybindings name="user-visible name for shortcut scheme">
<!-- a primary key binding (shown as shortcut for verb in GUI) --> <primary keyval="a gdk keyval name" modifiers="control,alt,shift" verb="VerbName" />
<!-- a secondary key binding; modifiers="" if unspecified --> <seconary keyval="a gdk keyval name" verb="OtherVerbName" /> </keybindings>
The keyval names are as returned by gdk_keyval_name().
I've comitted a shortcuts.xml file that I've extracted from shortcuts.cpp; it follows this schema. We'll probably move it somewhere else later, but right now it's in src/.
No code to read it, yet, but that'll come soon.
I think files using these schemas will go in /usr/share/inkscape/keybindings/ and ~/.inkscape/keybindings/.
I'm not sure whether the default schema should remain hard-coded or whether that should stay in an XML file. Thoughts?
-mental