Patch approval process should consider also keymap quality


I am working on an overhaul of the keymap for Blender 2.8. Given what an unmaintained mess the keymap has been past few decades, the process is very lengthy and takes about 5 days of full time 10/hours a day of work. I am almost done, but right now I am having very hard time dealing with Grease Pencil key bindings.

The biggest issue is obscene amount of identical key bindings duplication across the entire software, but Grease Pencil in 2.8 brought it to a whole new level. It adds yet another layer of duplication on the already existing layer of duplication in the Blender itself.

In 2.8, amount of GP keymap subcategories grew from 2 to 8, and every single of them duplicates quite a few of the same keys within the Grease Pencil itself! I highly doubt anyone will ever want to have different key bindings for adjusting brush size in Grease Pencil Draw Brush mode vs Grease Pencil Paint Brush mode for example.

Since the mess is so severe, with no intentions of clean up on the horizon, it should at the very least not be made worse. Grease Pencil was branched off, then worked on, and then merged back in during codequest.

Blender developers are known for being notoriously strict when it comes to code quality, so I highly suggest that the same strictness is applied to a keymap clarity when patches are being merged, to prevent breaking already extremely fractured keymap to even smaller fragments. This is the keymap for just one small piece of blender dedicated to drawing 2D lines. Make sure to click the image:

You may have as well just hardcoded that, because you can not reasonably expect any end user to dive in and spend time customizing that, then dealing with potential conflicts.

There need to be some standards to avoid key duplication, and they need to be enforced, strictly. Otherwise, with every new merge of an updated module which adds another operations, the already tiny chance of ever fixing the keymap will become even smaller and harder to achieve.


I certainly agree with this. Keymap, being one of the most immediate and ongoing user experience factors, needs to be consistent and easy to understand. I don’t touch grease pencil, partly because it doesn’t really have a place in my workflow but also partly because the 2.7x map was already pretty confusing, I would basically have to relearn it every time I wanted to use it.

I look forward to what changes you have planned and support the idea of a keymap audit when merging a patch.

the keymap layer should definitely be unified and simplified … as well as that of the themes … I read in a tread on that there are 756 color options and 119 other options for themes … :see_no_evil::see_no_evil::see_no_evil:

And please add more modal operators to the keymap! Loopslice and Bevel, I’m looking at you! :face_with_monocle: I personally don’t like the keys that are currently mapped.

I have worked on a big production using grease pencil and made my own keymap that I shared with the team to save everybody precious time. I can share it here if you want to look at it.

It essentially mirrors a lot of 2d software completely ignoring the habits people forms in 3d software. It has stuff like space bar to pan view, move by increment using the arrow keys, is useable with a cintiq (no wheel actions or third click), confirm on release for move and duplicate actions, lasso on simple click and key modifier for place cursor. I’ve tried to reimplement it in 2.8 but so far the (useless) edit modes and sticky tools prevent me from doing it. We also had a few add-ons that made some difference but nothing too major, apart maybe for a copy/paste in place for parented layers.

Anyway I’ll link it here if anyone wants to try it in 2.79 to get a feel of what a perfect grease pencil keymap would look like, at least for me and the people who I shared it with.