It looks good. Can't you strech rows 1 and 2 to full width so that you gain even 1 pixel per key?
The default vkb includes some punctuations, actually the most useful punctuations - period, comma, question mark, and exclamation point. It would be good to retain at least the most commonly used punctuations. A good example would be the Maliit vkb, see how period and comma is at the bottom.
A wild idea: Add another property to vkbrenderer class, lets name it "keys-special", which contains an array of chars. For every char in that array, create a button (from him-western-...) right to the spacebar. Treat those buttons the same way space button is treated. That way ABI will be kept, i.e. if vkbrenderer class does not expose such property, do nothing. I hope you got the idea, I can elaborate if needed.