Launched application does not stay on the same desktop

7

Why is it that application with a long loading time (NetBeans, Eclipse etc.) does a "jump" to the current desktop, even if the process was started on another?

If I go to desktop 3 and launch an application and then go to desktop 2 while I wait, then when the application has loaded it will launch on desktop 2. Is there a way to change this?

Anders Metnik

Posted 2012-06-07T10:43:01.113

Reputation: 197

2I've always had the same problem on Ubuntu and Mac OS X. I tried and couldn't find a good answer. I'm convinced there isn't one, but I hope someone proves me wrong. – Hassan – 2012-06-07T11:00:24.683

It depends on your window manager, you can set up groups to launch certain apps on certain pre-defined desktops. Another way is to use xnest or xephyr to run a second nested X server on 1+ of your desktops Then launch it with DISPLAY=:1 command args ... and use the -display arg if the command has one, but usually it is enough to export DISPLAY. Also if you have multiple monitors (Xinerama displays) you can use :0.0 or :0.1. Can you give a bit more detaill? – technosaurus – 2012-06-12T23:39:28.510

Im running a standard Ubuntu 12.04. Don't know much about windowmanager or tbh. my knowledge about linux is also very limited, but im learning :) (its my new jobs enviroment ;-) ) – Anders Metnik – 2012-06-13T06:32:50.473

Answers

5

This is a rather complicated problem.

The Window Manager (WM) is supposed to, who would have guessed, manage windows. This includes but is not limited to their position, dimensions, desktop and if they receive decoration or not. What is not part of the WM is launching applications in any way, it will only see and manage the windows which that process will spawn. So, what happens?

  • Switch to Desktop 2
  • Launch NetBeans
    • The Splash-Screen is created as window with no decorations on Desktop 2
  • Switch to Desktop 3
    • The NetBeans-Splash-Screen stays at Desktop 2
  • NetBeans is done and finally creates the main window, which is of course send to the current desktop, as it is a completely new window

The problem in this case is that the Window Manager is completely unaware (or ignorant, not sure) who that window belongs to. There are two possibilities:

Find a window manager which does...

  1. ...support grouping of windows by their parent process
  2. ...allow you to define rules for every window

Or you get a helper application like Devil's Pie which allows to define window rules.

Bobby

Posted 2012-06-07T10:43:01.113

Reputation: 8 534

That works for ubuntu 12.04? :) – Anders Metnik – 2012-06-14T06:25:07.507

2

If you use compiz (yes you can even under 12.04 ;) ), you could try to install the compizconfig-settings-manager and then go to the Place Windows submenu to add a new Fixed Window tab where you will select the class (name) of your application and the desktop.

Otherwise, you could use wmctrl that will allow you to launch your applications and force them to go to one of your desktop.

Cédric Julien

Posted 2012-06-07T10:43:01.113

Reputation: 604

+1 for wmctrl being a portable solution across flavours. – invert – 2012-06-14T09:49:28.240