good proposal overall!
I'd make some changes & remarks though (I think there are a bit too many folders):
2geom -> libraries/2geom extension -> extensions io -> extensions/io manipulation/knots -> ui/knot-manipulation manipulation/misc -> manipulation/ manipulation/chemistry -> manipulation/ manipulation/selection -> manipulation/ packaging -> ../packaging (same as now)
- What's the point of display/control ? - *nothing* UI-related out of ui/ - *nothing* non-needing-absolutely-UI in ui/ (so ui/widget/actions -> manipulation/actions (or "verbs", but I'd prefer "actions" )) ( the goal will eventually be to put in the root cmakelists a "if(WITH_UI)include_directories(ui)endif()" ) - do we need ui/menu/ while we should have a generic menu generator from share/ui/menus/*.xml ? Same for toolbars & dialogs, if we have GActions and xml or glade files, we should not have much code to put in those folders (?) (Or maybe we can start with that and silmplify once there is less code)