Modules or widgets with UI components would declare a module position and a set of properties and then they would be added to a list of modules in that section that the user could re-order.
They would set their width and height or percentages and wether they stretch or not to fill empty unused space in the module, so a build menu could stretch to fill the rest of a module adding an extra row of build icons at the bottom.
This way a UI module would draw itself based on translated co-ordinates using the window manager API rather than drawing directly to the screen with OpenGL calls.
Modules could declare themselves as not being part of this system and using screen coordinates instead.
As an example I've shown a bsic layout and then used IceXuicks mockup with edits to show what would fit in where. Upper middle and lower control the placement within a section fo a UI module. Corners are sued to go from a corner up or across underneath ro above or alongside the other sections.

For example if the ETA panel where moved from G Upper to G middle then as the screen got taller the distance would increase between the panel and its neighbour as it centers itself.
Of course there are some kinks such as what happens if you havent got a corner module but you have a top lower right and right top components?