I want to startup an always run but seldom actually used application to start on another workspace, so I don't have to manually do it each session start.

Can this be done, and if so, how?

  • Another desktop != another xserver I presume? Dec 11, 2011 at 21:48

4 Answers 4


First, thanks to Scott Severance I found out how to do this. But I wanted to flesh out his answer to make it easier for new Ubuntu users.

Note: This works with Metacity window manager, the default window manager for Ubuntu desktop.

First download and install gDevilspie (I used Ubuntu Software Center)

enter image description here


When I tried to run it, it failed. But thanks to AskUbuntu I found the fix...

sudo apt-get install python-glade2
  • This is a bug in gDevilspie, a needed package is not identified in the dependecies. If you already have this package (one of my computers did) you will not have to do this.

So start the application so its window is open, then fire up gDevilspie...

enter image description here

Click the ✔box so the daemon will startup at launch and then hit the add button...

enter image description here

Now give our rule a name.

Then identify the application's window for the new rule using its properties. Two ways to do this:

  1. Hit the Get button and be presented with a list of window_names, or

  2. Find the window_class using xprop.

The 2nd way is safer because window name can change. Open a terminal and type in xprop | grep WM_CLASS The mouse cursor will change to a plus. Move the new cursor so it's over the desired application window, and click it. The wm_class will appear in the terminal...

-@-:~$ xprop | grep WM_CLASS
WM_CLASS(STRING) = "skype", "Skype"

Now click the Actions tab, and check the ✔box for set workspace then set the desired workspace...

enter image description here

If you like, check out the rule...

enter image description here

Now save the rule using the Save button...

enter image description here

And start the daemon if it's not running already.

Note: You can do lots with gDevilspie (devilspie). Places for more information:

Knock yourself out!

Good Luck

  • Great explanation. This method is great when you want a certain application to have a fixed window placement, but only on startup. I use it to open a maximized Terminal window in an offscreen workspace on startup, and still be able to open other terminal windows in my active workspace.
    – KOVIKO
    Aug 9, 2012 at 15:54
  • It's 2016, and I've just done something similar here. However, now that Unity/Compiz is the norm, a small caveat - set_workspace should be replaced with set_viewport
    – jymbob
    Jun 24, 2016 at 10:27

You can use Place Windows plugin of Compiz (CompizConfig Settings -> Window Management section -> Place Windows):

enter image description here

And then choose the window and viewport (in this example, i choose Firefox):

enter image description here

Also, if you want that window to start maximized you can set that in Windows with fixed placement mode.


A great app for this is devilspie. There's also a GUI settings manager, gDevilspie.

sudo apt-get install gdevilspie

Install wmctrl

sudo apt install wmctrl

And create a script (in this example thunderbird on the second workspace (-t 1)):


 (thunderbird &)  & sleep 5 && 
sh -c "wmctrl -i -r `wmctrl -l | grep Thunderbird` -t 1"

To know your application name on wmctrl you can view it by taping on your terminal :

wmctrl -l

And replace it with the correct name in the script.

Be carrefull with the capital letter ("Thunderbird" not "thunderbird") !!

Other example with firefox on the 3d workspace (-t 2):

(firefox &)  & sleep 5 && 
sh -c "wmctrl -i -r `wmctrl -l | grep Firefox` -t 2"

Bonus :

Here is the command to execute at start-up :

sh -c "thunderbird  & sleep 5 && wmctrl -i -r `wmctrl -l | grep Thunderbird` -t 1"

Work on Debain 10 with Cinnamon. But should work for all

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.