2011-02-23

How-To: Use "Activities" (sort of) in Compiz

One of the big features of KDE 4 is its Activities; it is now possible to create defined Activities that, when started, will open a specific set of applications, widgets, and virtual desktops. For example, the "Office" Activity might start up OpenOffice.org, Dolphin, and a Konqueror part widget showing the Zoho Office Suite. Since KDE 4.5, it has become much easier to start, stop, and switch among different Activities.
Unfortunately, similar functionality has yet to be found in GNOME. GNOME 3 has Activities, but "Activities" is more like another name for simple virtual desktop functionality. GNOME 2 doesn't have anything of the sort aside from plain-old virtual desktops, and I haven't yet found a way to configure Metacity to support that sort of functionality.
Enter Compiz, which is actually what I am using as my WM under GNOME. Its settings management program allows me to associate different windows with different virtual desktops. Now, I'm able to more fully appreciate the functionality and flexibility of virtual desktops without going overboard in terms of organization. How?
First, if your computer supports it, install Compiz and set it as your default WM. Then, in CompizConfig Settings Manager, go to the "Place Windows" configuration tool, and in the "General" tab, change "Placement Mode" to "Smart" (if it isn't there already).
Next, if you have a set of virtual desktops configured in 1 row and Y columns, to make an application always open in a particular virtual desktop 'j', expand the box labeled "Windows with fixed viewport", click "New", click the "+" button in the new window, click "Grab" in the newer window, and then click the crosshair cursor on the desired application window. Then, copy the window class name, click "Add" in the window with the "Grab" button, and type without quotes "(class=) & class=[insert window class name here]". Change the Y viewport position to 'j' and click "Close". Now that window should open in only that virtual desktop.
Now, I have Mozilla Firefox opening in desktop 1, OpenOffice.org and Okular opening in desktop 2, and games opening in desktop 3. Finally, I can use virtual desktops to the fullest extent. (And yes, these aren't real "Activities".)