Way, way, way back when JupyterLab was first mooted, I raised concerns about the complexity of an IDE vs the simplicity of the notebook document views, and was told not to worry becuase there would be an easily customisable worskpace facility whereby you could come up with a custom layout, save a config file and then ship that view of the IDE.
This would have been brilliant for educational purposes, because it means you can customise and ship different desktop layouts for different purposes. For example, in one activity, you might ship an instructional rendered markdown document with just text based instructions in one panel, and an terminal in the panel next to it.
In another, you might pre-open a particlar notebook, and so on.
In a third, you might ship a pre-opened interactve map preview, and so on.
What this does is potentially reduce the time to get started on an activity: “load this and read what’s in front of you” rather than “just load this, then open that thing from the file menu, in that directory, and then open that other thing, then click on the top of that thing and drop it so that you get two things side by side, then…” etc etc.
Whilst workspaces were available early on, they never had more than a rare demo, v. little docs and no tutorials, so it was really tricky to find a way into experimenting with them, let alone using them.
Anyway, I’ve started trying again, and again fall at the first hurdle; there are no menu options I can see (no Save workspace, no Save Workspace As…, no Open Workspace, no Reset Workspace etc) but there are some URLs for cloning one workspace from another (but not cloning the current default workspace into another one that you can then name?).
It’s also not obvious where the worskpace config files are. I think their default home is
/home/jovyan/.jupyter/lab/workspaces/ but they look fiddly to had create. Also, I’m not sure if/where/how you can share a custom default workspace file (eg how should it be named; what path does it need to be on?)
Creating a custom config file manually (which IIRC was also one of the early promises) is probably also not aan option; the best way seems to be to mess around with the panels in a workspace until you get them arranged just so, then try to poke around the
/home/jovyan/.jupyter/lab/workspaces/ directory until you find one that looks like it encodes the space you want.
Having found myself defaulting to VS Code more and more, using VS Code Jupyer notebooks running against Jupyter kernels inside local docker containers, as well as spending time in RStudio again (accessing quarto workflows etc), the main thing I get from Jupyter UIs seems to be frustration:-(