Switching displays while keeping windows in workspaces

I currently have my laptop configured to use only the external display when I plug it in at my desk, and when I unplug the display, it uses the internal laptop display as I'd expect. Everything works great, but for some reason, windows move into different workspaces when I unplug or plug my external display in.

I don't mind windows changing sizes (the external display is quite a bit larger than the internal one), but I do like having certain tasks stay in one workspace. Every time I switch my display I have to go through all my windows and distribute them how I like.

Is there some way to keep them in the workspace they're in when I switch?


Glad I'm not the only one being slowly driven insane by this!

Unfortunately, the only solution I've found is to switch away from Unity to Gnome Shell. The switch is painless, just run the the following command:

$ sudo apt-get install gnome-shell

When prompted during the installation, I'd recommend you stick with the current default login/display manager: lightdm.

And then log out. When logging in again, click the little icon next to the user's name to select the desktop environment. Select Gnome and log in as normal. Gnome Shell is pretty similar to Unity overall, and doesn't have this annoying bug. Hope it helps!