You can use the heights
and / or widths
argument to grid.layout
to fix the sizes, eg:
pushViewport(viewport(layout = grid.layout(heights = unit(0.2 , "npc" ) ,nrow = 1, ncol = 4)))
'npc'
means normalised parent coordinates, so 0.2 takes 1/5 the viewport.