Pane Spaces - ability to name sets of visible panes and quickly switch between them

Goal

  • fast context switching between sets of central tabs and panes in the main window
  • naming those contexts, and a single click on a name in a side panel to switch contexts
  • keep everything loaded in one workspace, NOT saving/restoring multiple workspaces (which swaps out ALL panes, not just the central part, and also takes a few seconds while the application windows unload/load, may move windows around on your screen, etc. )

Think “sliding panes”, but instead of sliding, you are picking what panes to be shown by clicking the name of a pane group that has been saved.

Specs

  • The currently visible panes in the central/main workspace are shown in a side panel, initially with a default name, and can be renamed. This might look like just a name “Pane Space 1”, but it could also include a collapsible list of the contents of it (like tab titles).
  • There is a command to “Switch to new Pane Space”, which may prompt for a new name or use a default one which can be renamed later.
  • When switching to a new Pane Space, the existing panes are hidden (e.g. display: none) and associated with the previously chosen name. A new pane is opened with no tabs.
  • When switching to another existing Pane Space, you click the name of it, and it instantly hides the currently visible PS, and unhides the one that is clicked on.

I’m unclear if this would be easy to manage pop-out windows with (harder than hiding a div since it’s a full blown window?). Let’s assume we only are managing the panes in the main window.

Proof of concept

Manually toggling the panes on and off:

  • Ctrl+Shift+I
  • find <div class="workspace-split mod-vertical mod-root">
  • pick e.g. <div class="workspace-tabs mod-top">
  • add a rule to display: none it.
  • see it collapse and be hidden.
  • untoggle the rule
  • see it come back

Rough idea is, just associate a name with what is hidden, and save it with the workspace so the right parts can be hidden/unhidden on demand.

Similar solutions

This is almost like workspace management, minus the workspaces. Everything is in one workspace. Switching between Pane Spaces is instant because it’s just hiding/unhiding a div.

It’s also similar to sliding panes, but instead of sliding, you are toggling on/off different panes. Rather than remembering “My intention to study X is in the two panes scrolled all the way to the right in a bunch of sliding panes”, you just look at the list of named panes and click the one you want to show.

It’s a bit like “multiple desktops”, where you could have a hotkey to quickly switch between different Spaces. The ability to name these spaces makes it easy to associate your intention with a bunch of open files.

A similar concept is in the Arc browser, with a concept of “Spaces” for different tabs by topic.

Similar to obsidian-fullscreen-plugin, but we want to fullscreen a pane and show it’s tabs, not just fullscreen one tab fullscreen

Also this solves requests like Option for pop-out windows to have panes as main window like file explorer and outline since you might not need pop-out windows anymore.