Dockable, Drag-And-Drop Panels w/ Layout Presets

I love Joplin and I have been using it for everything for several years now, but it has one big hairy wart that is always creating friction for me: The UI layout editor. I would propose an alternative means of granting control over the UI layout based on drag-and-drop of the panels, as is provided by other popular modular layouts such as Visual Studio Code, Krita, and Adobe Creative Suite.

This could be facilitated by a library like Dockview (http://dockview.dev/) or similar, or possibly it could be extended from the existing layout management system.

The complete feature set would include:

  • The ability to stack panels into groups that can be accessed with tabs on the top of the group
  • The ability to pin/upin panel groups
  • A standard central palette to choose panels from, which plugins could use to register any panels they provide, possibly using a dedicated row in the window footer/statusbar area
  • The ability to save UI layouts to a json file
  • The ability to toggle between different layout presets easily
  • The ability to apply layouts to any window
  • Potentially the ability to natively show multiple notes in different panes in the same Joplin window, as well as native support for tabs between notes without the need for plugins.
  • Maybe the ability to automatically switch to a layout based on the folder the current note is in, or a tag

I am currently browsing the source code to get a sense of how the current UI layout editor mode works to get a sense of how much work this would require. Any guidance on how that works would be appreciated.

EDIT: My main motivation for this is that it's getting difficult for me to use plugins that add new panels due to the fact that they aren't useful for every note/notebook, and its a pain to add and remove them and adjust their layout all the time. It would be much nicer if there were ways to auto-detect when and how panels should be displayed based on the current note, or just quickly hide panels when I don't want them in a consistent way that is unified across all plugins.