Before librnd 4.0.0, sch-rnd already has to support multiple sheets. This can be done only with some kind of temporary workaround. This document describes what hacks needs to be applied in sch-rnd to both support temporary multi-sheet usage and ease transition to the official librnd 4.0.0 support.
Currently the config, both librnd's rnd_conf and the app's conf_core are global. These will need to move into the design struct. However, this requires a lot of breaking changes on librnd side as well so can not be done before 4.0.0.
The workaround on sch-rnd side is:
The only librnd-side change this requires is grouping all internal conf states and being able to allocate and copy them. This can be implemented in a non-break manner.
It already implements hidlib state.
At the moment all events need to be local.
With config swapping this is granted; however the API lacks hidlib passing. This can be worked around temporarily by relying on a "current design" concept. For sch-rnd purposes this can be the same as GUI's, if the batch HID implements it.