I have recently been doing a lot of work on a custom keymap, while editing exported keymaps I have noticed several bugs where keymap values that should be exported are not, which brings me to the point of this thread, I think that a keymap should be exported with all the property values whether they are true or not, whether they are the default value or not, a good example where this is actually needed:
kmi = km.keymap_items.new(‘mesh.loop_select’, ‘SELECTMOUSE’, ‘PRESS’, alt=True)
if this is not exported with the property:
kmi.properties.toggle = False
Then any time that loop_select is called that has the toggle property above = True the value remains True until the loop_select operator is called and changes the value to False, making loop_select above behave the same as:
kmi = km.keymap_items.new(‘mesh.loop_select’, ‘SELECTMOUSE’, ‘PRESS’, shift=True, alt=True)
kmi.properties.toggle = True
After being called if you know what I mean, its an easy enough fix in the exported keymap but I imagine this confuses many people.