Issues with Workspace Functionality in Blender
🟠 Summary:
🔸Blender doesn't handle workspaces correctly when using dual monitors with two windows.
🔸Workspace settings reset to default with a new project, which is inconsistent with how preferences and add-ons work.
🟠Description:
Hello,
I’ve encountered two issues with Blender's workspace functionality:
- Dual Monitor Workspace Issue:
🔸Description: When using Blender on two monitors with two separate windows, switching to a workspace designed for a single-monitor setup doesn't close the extra window. Instead, the additional window remains open but switches to a 3D Viewport.
🔸Expected behavior: The extra window should close when switching to a single-monitor workspace.
🔸Current behavior: The extra window doesn't close but changes its content to a 3D Viewport instead.
- Workspace Persistence Issue:
🔸Description: Workspaces currently reset to their default state when starting a new project, which feels inconsistent with Blender’s approach to preferences and add-ons. Add-ons, for example, remain enabled across projects and restarts. Similarly, changes to the workspace should persist unless explicitly reset by the user.
🔸Expected behavior: Workspace modifications should be persistent, similar to preferences, regardless of starting a new project or restarting the software.
🔸Current behavior: Workspace modifications reset to default whenever a new project is opened. I hope these points can help improve Blender's functionality and user experience. Thank you!
9 Comments
Just something else that came in mind, it will be useful if Blender can store different layout profiles, something like OBS and Krita does.
This way, custom layouts can be added without re tweak tabs or create 50 tabs for different workflows or have more than one Blender install (like I do) for specific task like, sculpting, hard surface modeling and so on or force a user to lock thing in properties panel or waste time rearranging things here and there.
This can allow user to switch between interfaces without interfering with another, and share one file between 400 people will be easier and a smoother experience.
This profile thing, can also store different shortcuts, if user load a "hard surface modeling" space bar can be set to open tools menu, when user load a "video editing / rendering", space bar can be used to play back.
I keep my initial thinking about the dual monitor setup, but add a profile, maybe can store something inside of it, this way, instead open / close a second window on tab switch, the window can be opened / closed on profile change.
This can be a problem in some situations, like everyone else argue in their own ways.
Your suggestion will be better understood if you explain like:
"Add a pop-up to ask if the user want to keep the current / last file layout or create a new one from scratch"
This way, a logical process like: "save current UI to a temp file and delete after user choose create new empty scene with default UI" can be created (most of time it won't anyway).
And this can be really handy, since a Blender artists needs to open blender from another person to finish a job or edit a shared file, and work with someone else layout can be a hell or a waist of time, since some resets and changes need to be done directly in the interface or through preferences.
Something simple like "ask a question" can be a good complement for team work. So my upvote on this.
But, about keep windows attached to a tab, well this can be tricky, if Blender stores your second monitor information like position and windows size, and if I open in my setup or if you change your monitor setup, this information will be different, so Blender needs to create a "fallback" behavior like open both windows in one monitor, and there is the window layout problem, because it needs to store panel and options arrangement for each one.
Another problem is the full screen behavior, because if booth windows is opened in full screen, one will overlapped, if a user download a file from the web and this occur, resources will used for nothing or depending of how z-index of windows is calculated during application load, if the second window is opened after the first one, the z-index will be 2, what it means that the second window will overlap the first, if the user open a file, but this time, the first window is opened after the second, the first windows will have a higher z-index, what means that the entire interface will different and people will start to complain about a error in the application, when the application is working correctly.
Since dual monitor setup it's a niche stuff, I don't see a reason to code a lot of things for something that already works like expected.
The tricky thing that would happen if Blender worked as you ask is that any change in the UI would be permanently saved. It would mean for example that you wouldn't be able to have any UI difference across multiple files. Your modeling files would be lock in the same state as your animation files, rendering, and whatnot. It's quite a common thing in multiple softwares.
What Blender allows you to do instead, is to load a clean new empty file, do whatever changes there, and save that as your startup file so that you permanently have this custom UI at any new file.
Alternatively, you can also append your workspaces from and to any file.
Which in terms mean you are free to do very different things in any file and be in better control of what to make permanent, and when.
I’m not entirely sure how most software handles this, but in After Effects, for example, workspaces don’t change when you create a new project. Even when you load an existing project, it retains its own workspace settings (even if you don’t have that workspace or if the project was created by someone else). You can simply reset your workspace to return to your preferred setup.
The benefit of this behavior is that you can add a project’s workspace to your own without losing it when creating a new project, making it reusable across other projects.
For example: Let’s say I open another project to work on it. Normally, I wouldn’t have access to my custom workspaces in that project. If I disable "Load UI" in Preferences, I won’t have access to the project’s default workspace either.
This is why it makes more sense for workspaces to be independent of individual projects, similar to how Preferences or Add-ons are persistent across sessions. It would allow users to maintain their workspace setups consistently while still having the flexibility to adopt new ones if needed.
have you saved your custom workspace layout into your default blend file. The save startup file option below:
gcdnb.pbrd.co/images/5jtZvaB7KWoo.png
You can’t use "Load Factory Settings" in the middle of a project because it closes the current project and opens a new one. This means you’d lose unsaved work in the process.
When working on someone else’s project, you don’t have access to your custom workspaces, and using "Load Factory Settings" isn’t an option. Disabling "Load UI" in Preferences prevents you from accessing the workspace associated with that specific project.
With the approach I’ve described, you could have access to your custom workspaces in any project while still preserving the project-specific UI for each file. This provides the flexibility to use your own workspace setups while keeping the project’s original UI intact.
So basically you want you every new blend file to start with the layout of your last open blend file, but without any of the objects?
No, that’s not what I mean. What I’m suggesting is that workspaces should be tied to the software itself, like add-ons or preferences, rather than being tied to a specific .blend file.
At the same time, when opening any project, its UI should remain as it was last saved. This way, anyone working on the project can reset the UI to their own custom workspaces if they choose to.
I hope I explained it clearly.
I don't understand the difference between what I said and what you said :)
Personally I would prefer my files to open with the layout that was used last time I opened that particular file, so I can continue working from where I left off. The layout for some other blend file might have been to work on texture painting, whereas in the blend file I open I want to continue working on scripting. etc. It doesn't make sense to open my texture painting project with a scripting workspace , just because I was scripting last time I closed Blender.
Also I might be working on scripting in two blend files, but I've modified the layout of one to cater for my current scripting task, maybe i'm scripting something for the compositor for example, so I've added a compositor editor to the scripting workspace, and in the other blend file I've added a 3d viewport to the scripting workspace because I'm working on a script to automate monkey creation. I wouldn't want to close the monkey creation blend file, then open the compositor blend file to find myself having to manually change the 3d viewport editor to a compositor editor.
problems -
opening someone else's blend file doesn't load their layout - solution is to tick the 'load ui' button in the file open window's n panel.
new files don't open with the layout I want - before closing the blend file with the layout you do want to be used for new blend files, clear the scene of datablocks and save the layout as the default in the menu I pasted above.
need multiple layouts - save multiple default blend files and drop them in the same folder, add that folder to the blender file view's bookmarks. Alternatively, use Blenders application template system - docs.blender.org/manual/en/latest/advanced/app_templates.html
fixing multiple monitor behaviour would be good though 👍