New Plasma Active Window Switcher

Last week, Marco and I have integrated a new window switcher into Plasma Active. We had designed and started to implement this rather central component of the shell during the Tokamak sprint a couple of weeks ago, now it finally made its way into Active, so you can update your system to the latest packages and enjoy it. (In order for it to work correctly, you’ll have to delete your plasma-tablet-appletsrc file, as we do not update these automatically at this stage of development). The new window switcher works very well, and is quite snazzy on top of that. It also contains an application launcher! I’ve recorded a small demo video showing these new features.

Window Strip

The idea is to have a non-modal interface, which means that the window switcher does not block, but allows to interact with other applications that are currently in focus. For this, we use a panel which can be dragged down partly or completely from the top, revealing a strip of windows that is horizontally flickable with the finger. This way, it works for only a few windows, but also scales quite well for those that want to have more apps open at the same time.

The implementation is a bit hacky, but only in the background. It is in fact a combination of QML and KWin’s compositing effects. We are basically catching move events, "polishing" these into a more straight stream of events which we then pass to KWin, asking the window manager to paint thumbnails of the windows at a given position. While we didn’t know if it would work at all when we came up with this design, luckily it turned out to be nice and very usable.

App Launcher

The new panel also has an app launcher, which allows you to launch an app. As the user might potentially have lots of apps installed, there’s a "tag cloud" which lists categories of apps (you tap on one and it shows only apps in the category), and a search field you can use to find apps. (There’s a theming problem which affects readability in the tag cloud, we’ll fix that shortly.) As the number of apps available might not fit into the available screen space, you can flick the apps grid horizontally to reveal more apps.

These features have already been merged into the KDE:Active packages on the Open Build Service, and you’ll be able to try them on your device with the next Balsam Professional Live image.

What do you think about these new pieces in the UI?

21 thoughts on “New Plasma Active Window Switcher

  1. Very nice! Although once again something similar would be cool for the desktop as well, as an optional replacement for the existing tasks applet (especially if you have a mouse with a scroll wheel).

    1. The Window Strip is a “normal” Plasmoid (albeit it requires KWin’s compositing to be available for getting the thumbnails on the screen). So in principle, this just works on Plasma Desktop. It requires a bit of testing and integration work (for example there’s no mouse wheel handling yet, as it’s oriented at touch-screen devices), but it shouldn’t be too hard to do.

    2. While with the Active project, KDE is focusing on a flexible platform allowing the “one UX that fits each device” approach, for Windows 8, Microsoft seems to embrace an hybrid approach mixing both touch based flow and traditional desktop apps : http://www.youtube.com/watch?v=p92QfWOw88I (i think it’s quite interesting).

      As a mainly desktop user, i hope you’ll try to bring some of the active goodness to it.

      1. “they are designed for touch, but they work pretty well with keyboard and mouse as well”

        I think that sums it up pretty well.

        In short, I think an app really needs to be designed for a specific set of input (and to a degree also display) devices. Just going “we do touch apps now, and hope that’ll work for mousers as well” will only create mediocre applications for those that prefer a real machine. I fear that a strategy like this will, in the end fall short for both sorts of users.

        Furthermore, I think that most users on the desktop have pretty well-trained muscle memory. Completely recreating a UI because it has to work for touch-screens now will alienate those. In Plasma, we can share components between form factors, but we can change certain aspects per device. This is I think the best of both worlds, and doesn’t leave you with applications that just show that they’re full of compromises.

        1. I am not suggesting that this be used as the default for desktops. One of the big advantages of my plasma in my opinion is that it is not monolithic, you can have multiple components doing the same task in different ways. The system shown here, for instance, may be designed for use in a touch-based interface, but if it is included as a widget in the standard plasma releases someone could remove their default task manager widget nad put this in its place if they wanted to.

          So I don’t think we should radically redesign the desktop interface, or that we should compromise the tablet interface to make it work on the desktop. What I think would be good would be to include the most basic support for the desktop (right-click and scroll wheel interaction, basically), and ship it as a plasma widget to be used wherever and however someone wants. Further, since it is qml-based if someone uses it and finds they can improve it to make it better for the desktop, they can either push it upstream as a form-factor-specific feature or just release their own version on kde-look.org.

          So I guess my hope is two-fold:

          1. Plasma active maintains the modularity that I think is plasma’s big selling point. The components should be designed for certain use cases, but it should be possible (although not necessarily desirable) to use them in other contexts. This merely means making them general widgets and containments that can be added and removed through standard interfaces, it does NOT mean making any effort to make them work well on the desktop.

          2. That the stuff in plasma active is made available more generally to the regular KDE user base at some point, either as part of standard plasma releases, as part of plasma-addons, or as its own software package or packages that when installed will make the widgets and containments available in standard KDE releases.

          The descriptions so far make it seem as if plasma active is being developed largely as a tightly-integrated, stand-alone release. My hope is that this is a temporary situation during development and that these components will be available as more general, modular plasma widgets and containments somewhere down the road.

        2. Just some thoughts (dont know if it’s going to make a point) :

          “In short, I think an app really needs to be designed for a specific set of input (and to a degree also display) devices.”
          Tablets wont be pcs soon, agreed.

          But my guess is that laptops with multitouch touchpads or screens will see an exploding growth.

          I think the non-early adopters users are waiting fo some “best-of-both-worlds” approach, between pcs and tablets.

          In a future not that far away, a non-neglectable part of the market will be shared by devices with multiple sets of inputs, a device that can be either touch-friendly for switching between the weather and last tweets small apps, and mouse-oriented for heavy desktop apps.

          “1. Plasma active maintains the modularity that I think is plasma’s big selling point.”
          Yes, it is from the geeky point of view (and i include myself in).

          But the counterpart is : it lacks some integration, compared to a full-configured environment like gnome3 or unity. Or the experience promised by windows8.
          I know that proposing a non-vanilla full-customed kde is the job of distributions and/or device makers. But their’s some need in here of showcasing the possibilities of our favourite environment.

      1. So that’s an additional device that can run Plasma Active! Is anyone working on a MeeGo-based version and/or a handheld version for the N900? I do have a tablet but it’s a Samsung Galaxy Tab (7″) which (last I checked) runs neither openSUSE nor MeeGo. :(

  2. Looks very snappy, esp. compared to older demo videos. However I dislike the concept of Tag Clouds — never saw any usability in them.

  3. Amazing at which speed plasma active comes along.
    I hope the WePad I ordered gets delivered soon so I can have a test ride myself.

  4. “The idea is to have a non-modal interface, which means that the window switcher does not block, but allows to interact with other applications that are currently in focus.”
    Can you explain why it must be non-modal ? What kind of interaction is needed between apps and the tasks switcher ?

    It seems less usable than a full screen “present” effect and you must drag for activate it when a simple click can do that.
    Can you also explain why you need to display the tasks switcher at the same time as the app launcher ? There is less space for the app launcher.
    Hildon (Maemo 5) do the same job in a better way.

    In my opinion, the way you made the tasks switcher (a strip of previews) would have been more appropriate for the activity manager.

  5. To be frank, I am a bit surprised that the press don’t pick up on the superb potential in KDE and associated technologies. In terms of Linux DE they are preoccupied with Gnome 3 and Unity plus Android off course.

    I do not believe in bashing other technologies to promote another, but KDE are serveral years ahead of virtually any other DE such as Unity and Gnome 3.

    Probably OSX is ahead wrt workflow between applications and more consistency between 3rd party applications (Amarok/Calligra/K3B should have a chat and find some common ground) but that’s just about it. But then again, I’m firmly convinced that KDE has a far better potential. (Have a look at the next version of OSX – shure looks like they have picked the KDE netbook UI clean.)

    KDE is not just about potential – it does in fact deliver too. I can’t think of a more innovative and creative society related to the IT/Tele industry. Since I first started using KDE 4.0.85 every single version has been an improvement to the previous, and every version brings something new to the table(t).

    Is there a fresh list of compatible and recommended tablets (and laptops with touchscreen) anywhere? Preferably with working gps/3g? I think it’s time to get one. ;)

  6. Did you check-install the packages? I upgraded from KDE:Active last evening, and cleaned Plasma config (find ~/.kde4 -name \*plasma\* -delete). When I launched plasma-tablet, it failed to load two applets in the systray (although I could not get any information which applets these are), and the web dashboard applet could not be loaded as well. Moreover, the app launcher above the new window switcher is missing (just an empty space there).

    1. I tested the clean install earlier today:

      One missing panel icon is the notification widget, which is overwritten by a widget from another package. I thought that I ad fixed this, but need to take another look at why it didn’t work. The other one missing is likely the share-like-connect widget, which is in a separate package. You can install it with “zypper in share-like-connect”. I had added this to the installation docs on the wiki earlier today, but thinking of it, I’ll make it a dependency of the packages, so it gets installed automatically.

      Thanks for the feedback, btw.

      1. Thanks for the help. I upgraded again and installed share-like-connect. After another Plasma config cleaning (and I also removed the Nepomuk storage this time, just to be sure; no relevant data was in there ATM) I restarted plasma-tablet, and alas, most of the issues are gone. The new application launcher and the web dashboard work now, as does the SLC taskbar applet. There was still one applet up there which did not load, but that seems to be not so important.

        The latest updates, esp. the new task switcher and rekonq-active make everything much more enjoyable, to the point that I begin to use the tablet regularly for reading blogs and news at home. My two top issues right now are:

        1. I need a working suspend mechanism, so I don’t have to turn off the tablet completely after use. Of course I can suspend from the battery applet as usual, but then I’m stuck with a locked session and need a USB keyboard to unlock it. (The lock screen stays above all windows, including the virtual keyboard.)

        2. rekonq-active can zoom into the page, but I’ve not yet found a way to zoom it. Maybe that’s because my touchscreen driver does not support multitouch. This issue is not so severe as the first one as I can simply work around it by reloading the page.

        1. Glad you like the new stuff :)

          I’ve been planning to set up the machine so that the power button suspends it, that feels rather natural on my machines. Will do that shortly, so expect updates to fix it this week :)

      2. Oh, and you should insert some separator between the task switcher and the application launcher. Else it looks weird esp. with a big tag cloud.

        1. Yep, the items are a bit hard to hit as they are right now, definitely need a bigger hit area. We’ll work on that.

Comments are closed.