This tries to adjust better to the size of the output where the Squeekboard surface is placed.
It's part of the necessary work to let layouts choose their own heights.
WIP: Not thoroughly tested
WIP: This is probably not the end of this chain
WIP: Based on https://source.puri.sm/Librem5/squeekboard/merge_requests/339