Window Switcher Love

One of my favorite features in KWin is Window Switching (aka Alt+Tab) and it is not surprising that it’s also one of the areas I prefer to work on and love to see others working on.

This week our Window Switchers have received quite some love from various contributors. The compact layout got some usability improvements and the highlight in all layouts does no longer move around when pressing Alt+Tab for the first time. Navigation with cursor keys when the list of windows is open, is properly supported, now. That is in a horizontal layout the left/right keys can be used to navigate through the list, in a vertical the up/down keys are supported and in a grid all keys are supported. Of course the normal navigation is still Alt+Tab/Alt+Shift+Tab – navigation through cursor keys is just an additional useful feature for those who want to use it.

Speaking of grid based layouts: I implemented a new QML layout in a “Present Windows” style. It is a layout showing thumbnails of all windows in the list in a regular grid and taking the complete available screen estate. By that it is similar to the previous Alt+Tab mode inside the Present Windows Effect. The code related to Alt+Tab has been removed from the effect, but otherwise the effect is of course unchanged.

Having this mode as a QML layout has quite some advantages. E.g. it is no longer required to have desktop effects enabled, though it is still recommended 🙂 The layout follows the visual style of our primary Desktop Shell which makes it easier to use. Selection is indicated by the well known selection marker of the Desktop Shell Themeing. Last but not least the layout properly supports multiple screens, which has not been a pleasant experience with the old effect based implementation.

Overall the new grid layout is also incorporating some of the feedback we received for the new layouts introduced in 4.8. Our default layout replaced the BoxSwitch effect, but there has been a slight difference in behavior. The layout makes only use of the horizontal space and by that thumbnails can become so small that they cannot be recognized any more. In the new QML based layout the thumbnails always have the same size at the compromise that some of them are perhaps not visible.

A grid based layout provides here quite some advantages as the screen estate is used in a more efficient way to render high quality and good looking thumbnails even with a large amount of windows.

I like to remember that we are currently selecting ideas on how to improve our default settings and switching to the grid based layout may be one of those. Also I want to remember that all those changes are rather trivial and could easily be implemented by new contributors and are also listed in our ideas page and as milestones for 4.9.

16 Replies to “Window Switcher Love”

  1. Sorry if this is not the appropriate place for a feature request, but this just reminded me of an effect I would like to see for switching between virtual desktops (or maybe a change to an existing effect). At the moment I use the “Slide” effect which I like but I think it could be improved, to my taste anyway.

    What I am imagining is that it would zoom out a little before sliding. Assuming that you are on Desktop 1 and ctrl+F8 triggers the Desktop Grid, the effect would be a bit like pressing ctrl+F8 and then straight away F2 (if you wanted to change to desktop 2). In my opinion this would help give the user a better sense of where the desktops are spacially – in a setup like mine (4 desktops in 2×2) you would see parts of all other desktops as it slides from one to the other. Also it would probably look better if it only zoomed out part of the way (not all the way like Desktop Grid) as this would not be as visually jarring. Hopefully this all makes sense…

    I’m unfortunately not much of a programmer or I would try myself, hopefully it would be possible to re-use zooming/sliding code that is already there.

    Anyway thanks for all your work, even without this effect everything about KWin is great!

    1. My main problem with slide virtual desktops animation, is that if there is no windows on virtual desktops and you dont have different wallpapers per virtual desktop, you have no ideia that you are “sliding” 🙂

    2. I’m sorry but posting feature requests to my blog posts does not scale. Please use for feature requests.

  2. I’d love to change between virtual desktops like switching between windows, like here… With “Desktop grid” only shows workspaces but you have to press arrow keys and Enter to go to the desktop you want to go. Would be nice if also you can go through virtual desktops by pressing the same key combination you use for activating the desktop grid (I use Meta+Tab, for example).

    1. Well in general Present Windows and Desktop Grid are planned for QML. Apart from that: where it makes sense.

  3. On the subject, a couple of useability issues I stumbled on 4.8.1.

    – In the “Configure Layout” dialog, opened by ‘kcm module -> Task Switcher -> Main -> Effect, Layout based switcher -> wrench’, it is quite hard to see which is the currently selected layout. There’s almost no visible indication. The selected option in such switchers should have better contrast / use a more distinctive color or something along those lines. Also please highlight the selected theme when the dialog first opens.

    – Please please make it possible that in the “compact” and similar switchers, one can chose for _not_ having the window icons greyed out. I usually have windows of emacs, thunderbird, konversation, firefox and the hamster time tracker. All of these have a round icon, and they all look the same in grey at a glance. It used to need fewer brain cycles to quickly alt-tab between windows when the icons were displayed in full color.

    1. the KCM is currently on my todo list and I have already some code which improves the situation.

      The general idea behind the layouts is to not have any options. If you don’t want a layout using the grayscale, just add a new layout which does not put the windows to gray – it’s a one line patch.

      1. > the KCM is currently on my todo list and I have already
        > some code which improves the situation.


        > The general idea behind the layouts is to not have any
        > options. If you don’t want a layout using the grayscale, just
        > add a new layout which does not put the windows to
        > gray – it’s a one line patch.

        Sounds good in principle, but I doubt that’ll scale midterm. E.g., the icon/entry size in the “compact” switcher could also reasonably be an adjustable setting.

    2. I agree very strongly, and apologies if this comment is misdirected, but this is the only place I could find the issue properly articulated.

      4.8.1 has hampered my work flow with the greyed-out icons in the application switcher. I use the ‘informative’ view, and what used to be an extremely fast switch (go to the right icon first, and only use text if necessary) is now a slow search. I did not know I cared so much about the color icons until they were gone! Any information on how to circumvent this, or when a fix might come about, would be greatly appreciated!

  4. definitely nice. but, would it be much better if we can have it real fullscreen. So we can blur out the rest of the screen. Right now, the area outside qml area is still distracting.

    1. Well actually, my alt+tab is assigned to the “Present windows” effect.

      So i already have full screen, can switch with the cursor keys or with the mouse. The best task switcher for me 🙂

Comments are closed.