I have a load of virtual desktops running and I usually have one full screen application per desktop (so sort of like the Ratpoison WM but with an option to use it in other ways when needed). I want new windows to automatically be put in certain desktop numbers when they start up. What's the easiest way to do this?
If you're using Compiz, install
compizconfig-settings-manager
, activate the "Place Windows" plugin, and in the "Fixed Window Placement" tab, you can adjust which windows should default to which viewport.You might want to take a look at the Devil's Pie tool; it is available in Ubuntu as package
devilspie
(apt-get install devilspie
).This article and this other one explain some of its prominent features, and provides some example code, including how to move a window to a certain workspace and maximize it.
I, too have a lot of virtual desktops and a workflow that has me opening windows on different workspaces, but I've adopted an 'open and slide' approach with compiz.. right after opening an application, I use a customized shortcut to slide the new window to the appropriate workspace, then slide back to the previous workspace with another shortcut.
In my case, this is something like shift-ctrl-left arrow then ctrl-alt-right arrow.. very, very quick and I have full control over where they go every time instead of being locked-in to one configuration.
If your requirement can make use of scripts, then it might be worth investigating wmctrl eg
wmctrl -s 0
would switch to desktop 0.