April 16, 2012

KDE4 Activities for Fast Efficient Workflow

KDE4 Activities are misunderstood, which is unfortunate because they are powerful, fast tools for organizing complex workflows. So what's the point, who needs them, and how do you use them?

Workflow is Everything

My Linux desktop gets complicated quickly because I have a lot going on at one time, and that is why my favorite desktop environments are Fluxbox and KDE4. KDE4 is a lumbering sumo wrestler that needs multiple CPU cores and lots of RAM to be happy, but in exchange you get a trainload of functionality and prettiness. Prettiness matters — I stare at this thing all day every day, so I want something nice to look at, like figure 1. KDE4 desktop with photo frames, weather, network and lunar phase widgets, and a panel all full of everyday necessities.

As you can see, I don't care for the minimalist blank desktop so beloved of certain dev teams that requires all kinds of hoop-jumping just to launch an application. I have work to do and I like having all my stuff a single click away. Imagine a shop free of tools, with only a clean empty workbench – it's rather pointless. The traditional method of managing complex workflows, with most Linux desktop environments, is by using multiple virtual desktops. Dedicate each virtual desktop to a different task, stick a pager in your panel or taskbar, whatever it's called in your DE, and you're one click away from everything. A window list button that shows all open applications in all desktops is a nice time-saver (figure 2). Fast workspace switching with window list button and virtual desktop pager.

Custom Workspaces

KDE4's Activities provides another method to arbitrarily group widgets and documents. In its early incarnations it didn't support documents, but only widgets and desktop tweaks, like different wallpapers. Since KDE 4.6 you can also populate an activity with documents and applications. It's a feast of configuration riches that can happily eat up days of your life without ever having to touch actual work. It may even better suit your workflow and make you more efficient.

Let's start by creating an Activity. Right-click on your desktop and then left-click Activities. This opens a great fat Activities manager at the bottom of your screen. Click the Create Activity button and choose the Empty Desktop template (figure 3).  Creating a new Activity.

This creates a New Activity icon; click the little wrench to open a naming dialog, and give it a name like Writing. Then click on its icon to open the icon chooser and give it a new icon, and you have something like figure 4.

Now create a second Activity, and then populate each Activity with a few different open documents or applications. Maybe add a widget or two, and give them different wallpapers. Make them completely different from each other. Widgets and wallpapers will automatically be unique to each Activity. My new Writing Activity button.

By default, every application that you open inside an Activity is present only in that Activity. You can also assign applications to single or multiple Activities. Right-click the titlebar of any application to open the window menu, then left-click Activities. This opens a menu like figure 5, with a list of all Activities. Click the Activity or Activities you want the application to appear in.

Now when you switch between Activities they will always be as you left them.

Switching Between Activities

Each Activity is almost an independent environment. The Panel is common to all Activities and virtual desktops, but you can customize almost everything else. It's like Robert Heinlein's classic story "And He Built A Crooked House." In this story an architect gets the brilliant idea to build a house in the shape of an unfolded tesseract. An earthquake causes it to collapse into a real fourth-dimensional tesseract, so from the outside it looks like a single-room house. But once inside all eight rooms are present and appear like normal rooms, except each room looks out into a completely different view. Of course there are more complications; treat yourself and find a copy to read because it's a great story. The parallel to KDE4 Activities is a single computer screen unfolds into virtual multi-dimensional space, and potentially much more complicated than a simple tesseract. Assigning an application to an Activity.

Switching between all these environments has the potential to turn into a cumbersome pain, but there are multiple ways to do this. You can switch quickly between Activities and your virtual desktops in the window list widget, because it shows all open applications and the names of the open documents or Web pages. So you can click on any application in the window list, and if it's inside an Activity it will take you directly to it. You can also switch using the Activities manager, and there are two different Activities widgets you can dock in the panel for fast switching or access to the Activities manager.

You can stop an Activity in the Actitivies manager. This reduces clutter, because stopped activities do not appear in the Activities selector in applications, or in the Activity Bar widget. Click on the little black square on the top right of the Activity icon. This changes to a red X when it's stopped, and a play button appears for restarting it.

Deleting an Activity is easy. First stop the Activity, then click on the little red X. This open a Remove menu. Click the Remove button and it's gone.

Now what?

Where to from here? Hopefully refinements and bugfixes. I've been pummeling on Activities pretty intensively for the past couple of months, and for the most part it works. Sometimes the keyboard disappears in during switching, but usually a couple of mouse clicks in a document or on the desktop brings it back. If you have real work to do, give Activities a try.

Click Here!