The pave software provides a sort of geometry manager for Tcl/Tk.
The pave isn't designed to replace the existing Tk geometry managers (place, pack, grid). Rather the pave tries to simplify the window layout by using their best, by means of:
The pave is implemented as PaveMe oo::class, so that you can enhance it with your own inherited / mixin-ed class.
While PaveMe oo::class allows to layout highly sophisticated windows, you can also employ its more 'earthy' descendants - PaveDialog oo::class and PaveInput oo::class that allow you:
At last, a stand-alone dialog allows not only to ask "OK/Cancel" or "Yes/No" returning 1/0 but also to set environment variables to use in shell scripts.
The theming facility of pave is enabled by ObjectTheming oo::class which embraces both ttk and non-ttk widgets, as seen on demo video.
Along with standard widgets, the mentioned pave classes provide a batch of following mega-widgets:
Further details:
https://aplsimple.github.io/en/tcl/pave
Download link:
Demo video (3.2 Mb) link:
Below are some screenshots, just to give a glance at this stuff.
Figure 1. PaveMe example described line by line in https://aplsimple.github.io/en/tcl/pave/index.html#example_Pave
Figure 2. Screenshot of test (test2_pave.tcl).
Figure 3. The same as above, just themed.
Figure 4. Themed non-ttk widgets.