Tag Archives: workspacestrap

Rethinking Virtual Desktops

First of all: This is my first blog-post on planetkde. So I’ll introduce myself:
My name is Anton Kreuzkamp, I am 15 years old and am from Germany (near Frankfurt). I am using KDE for about 3 years now and am developer for about 1½ years. I’m kind of a migrant worker in KDE, I do some feature here, some patch there, but no fix project (so far I’ve contributed to Plasma, KWin and Rekonq but I have plans for Calligra, Kontact and other projects as well).

So let’s come to the real topic of this post.
There were times when people used virtual desktops (VD) to seperate their different activities on the computer. Now KDE has Activities ‒ a much more powerful way to seperate different tasks than VD. So why do we still need virtual desktops? Why do we have two different concepts doing the same? The answer is easy and has been given a dozen times before: Because they are NOT the same, but are made for different kind of tasks. Activities are about… well, activities, a logical separation of different tasks. VD are about extending the available space of  the desktop, where the windows are to many to fit on the screen nicely.

I have never used VD. My windows use to be more than half of my screen in size, so I can’t have multiple windows shown completely on the screen, and even VD don’t help there. But wouldn’t it be nice if you could combine the free space of two virtual desktops? Then a window would fit in that space. But of course you can’t have one half of a window on one VD and the other half on the another VD and still use it. So I implemented this idea in form of a kwin effect:
The Workspace Strap
The Workspace Strap Effect
It allows you to organize your windows on a linear strap, either horizontally or vertically, that supports stepless scrolling. When you press Alt+Meta (configurable) you get a preview of the strap (see above) and can easily scroll by dragging.

But as a picture says more than 1000 words and a screencast is made of a thousand pictures, here’s one for explanation:


This implementation is just a kind of experiment to see whether it’s a satisfying experience, to integrate it upstream, it will probably need to be rewritten deeper in Kwin (like virtual desktops or window tiling), but if it’s coming over well I will try to find the time for it.

The code can be found at kde-apps.org or in my personal scratch-repo: git://anongit.kde.org/scratch/akreuzkamp/workspacestrap.git

I appreciate feedback of all kinds.
Have fun.

PS: I tried half a dozen screencast applications and none of it worked. I finally managed to make the screencast using an application not made for taking screencasts but to display videos: VLC media player. Real time encoding, full HD-quality with 20fps, no performance regressions (on my machine), without crashes. Thanks a lot to the VLC team.