The QML engine and the quickshell reloader both cause large amounts of
heap fragmentation that stacks up over time, leading to a perceived
memory leak. Jemalloc is able to handle the fragmentation much better,
leading to lower user facing memory usage.
UseQApplication: use QApplication over QGuiApplication (for qqc2-desktop-style)
NativeTextRendering: use NativeTextRendering over QtRendering for text
Env VAR = VAL: define environment variables (usually qt ones)
A fair amount of things are broken but not in the layershell interface
itself. The shell window platform extensions are next in line for
refactoring and relevent issues will be fixed then. Same for docs.
The hot reloader previously attempted to figure out which parent a
component would attach to as it loaded. This was fairly error prone as
it was heuristic based and didn't work as soon as you split
definitions into multiple QML files.
The new hot reloader functions by first completely building the widget
tree, then applying the old tree to the first tree and pulling out
usable values. Proxy windows now wait to appear until being reloaded.
Additionally added support for `reloadableId` to help match a
Reloadable to its value in the previous widget tree.