A more elegant KDE Plasma Window Manager and Compositor

Recently I have spent some time to make our window manager even more elegant. That is I decided to fix a few rough edges in our user experience offerings. All of these issues had actually been reported in our bugtracker as feature requests some time ago and listed as Junior Jobs, on the KWin ideas Wiki page and of course recently been added to the 4.9 milestone plan.

Unfortunately nobody wanted to work on these important yet easy to fix issues :-( So instead of waiting even longer I started to tackle the issues myself to ensure they will hit the next release. That means I invite all readers to participate in the development: it’s really easy and we are quite open and offer help to new developers :-) We even have quite some non-development tasks like requesting new categories on kde-look/apps.

The context menu when right clicking a window decoration has been synchronized as far as possible with the one of the tasks applets. Unfortunately we cannot share the code for technical reasons and some actions just cannot be available in both. E.g. creating a launcher doesn’t make sense in KWin and e.g. window tabs are a KWin internal functionality not yet available to Plasma Desktop.

While I was working on the menu I also decided to improve the “Move To Desktop” menu by using radio buttons instead of check boxes. A window is either on one desktop or on all – the checks do not make any sense as the actions are mutual exclusive. This indication is important as for Activities a window can be on a set of Activities and there check boxes make sense and are used.

Those users knowing the menu will notice that the entry “Configure Window Behavior” is no longer present in the screenshot. The entry has never opened any settings to configure the behavior of the selected window, which is quite confusing. It is in fact a quite exposed entry to the window manager settings. Based on feedback we got, including me asking non-technical persons what they expect this entry does, it got moved into the “More Actions” submenu and renamed to “Window Manager Settings” which is more compliant with other settings of our desktop shell like “Desktop Settings” or “Application Launcher Settings”.

Another area which received a few more improvements is again the Window Switchers. In addition to what I wrote last week cursor key navigation got added to our fancy switchers like CoverSwitch. So you now have a consistent behavior no matter if you use an effect or a QtQuick based layout.

In case there are no open windows when the Window Switcher is opened we now include the entry to “Show Desktop”. Defining the behavior for the Window Switcher when there is no window present is not trivial. The correct way would be to not show the list at all, but this would imply that there is no visual feedback at all to the user action. Also it is always possible that the last open window closes while the switcher is present. To handle such cases correctly we have so far shown a special text that there are no windows. But this has never felt very integrated as e.g. the thumbnail list is empty.

By adding the “Show Desktop” entry we have a consistent and correct behavior as the desktop will be shown after the user ended Window Switching. Another improvement in this area is that the wording is now the same in all layouts and effects. The effects used to call this entry “plasma-desktop”. Also as the icon we now use the same icon as e.g. the “Show Desktop” Applet which you can add to your panel instead of the Plasma icon. So all together some nice improvements to have an overall more elegant user experience in the KDE Plasma Workspaces.

27 thoughts on “A more elegant KDE Plasma Window Manager and Compositor”

  1. Radio buttons at last! :)
    Show desktop on alt+tab where there is no windows… hmm little weird – if there is no windows opened there is nothing that covers desktop ergo no need to show something that is already visible, or I’m not getting this right?

    1. I’ve got the same impression. “Show Desktop” when all I can do is to keep seeing the desktop that’s already shown makes not much of a sense.

    2. well it doesn’t make sense to use Alt+Tab at all if there are no windows. So it’s a compromise between offering visual feedback to the user’s action and showing something at least useful.

      1. Help mi with this: how showing desktop that I already see is useful? alt+tab is… WINDOW SWITCHER so “no windows” is perfectly valid feedback to the user, please keep it simple and logical as it is now.

        PS You can get rid of those stars in “***no windows***” dialog or change to something like this: “no opened windows currently to switch” if you want improvement ;)

        1. the no windows has some technical problems: e.g. it completely messes up the layouts with thumbnails, it has never worked with the effects and many more issues and quite some hacks to work. Using show desktop removes the hacks and adds the consistency missing in the “no windows” case.

          1. Hum, what about keeping the desktop thumbnail, but labeling it “no windows” instead of “show desktop” then ? You keep the nice visual feedback, but you avoid the confusing mention of “desktop” inside a window switcher.

              1. Yeah, I agree, desktop thumbnail with description of “no windows” or something like that is best compromise. BTW this thumbnail should be a lot smaller than that one on a screenshot.

                1. Unfortunately we have to also compromise with our implementation and constraints there. E.g. it would be difficult to change the wording. Consider that we also have “Show Desktop” as a normal entry. This would add quite some complexity required to be duplicated also in the effects. So no, it’s not the best compromise ;-) Be assured that we think about the implications of such changes for both users and our code base.

                  Concerning the size of the thumbnail: this is the new Grid layout which doesn’t change the size of the Grid. So the thumbnail is rather large, this is to be expected in that case. It’s quite clear that the Grid is not the optimal layout for few windows.

                  1. Oh I see. But I’m not sure if we understood each other – as screenshot showing there is already desktop thumbnail if no windows to show – just add text “no windows to switch” (or something like that) and remove ‘show desktop’ functionality – let it be just indicator as it is now but more fancy. I’m not sure if I’m getting this correctly can you post screenshot with other layout?

      2. So maybe if there is no windows, switch desktops instead.
        If someone is using alt+tab to show windows ‘only on current desktop’ it could be nice feature.

  2. thanks for doing that – everything that improves the polish of KDE makes it more of a pleasure to use. I know I’ve had issues with “window behavior” and not understanding what’s going on there at first until I realized it was the global window manager settings.

  3. More elegant indeed. Polishing the UI and making performance improvement might not be a very gratifying job, but I think many users like it a lot. Thanks for your work.

  4. Well done! Those are simple changes, but they improve the look&feel of KDE. I also wondered why the menu had checkboxes (although I only use shortcuts for this). And I often confused “Windwo Settings” with “Special Settings for this Window” from the “More Actions” submenu.

  5. Nice :)

    Speaking of activities, the “any combination goes” nature makes it a pain to move a window from one activity to another (need to reopen the menu at least twice). Never filed a wishlist for that because I couldn’t figure what the proper behaviour should be, but I’m beginning to think that keeping the menu open until the mouse moves away from it (instead of until one of the checkbox is clicked) would do the trick.

  6. Hooray for more elegant software! These kind of “small fixes” improve the user experience a lot and will give the first-time user a better impression, something that’s very important in my opinion.

    I agree with the comments above that the “Show Desktop” entry is a bit confusing. First, some users may wonder why it’s not always there, not knowing that there’s an option for that. Second, as others have pointed out, it makes no sense to “Show Desktop” when the desktop is already shown (and then the item disappears when the desktop actually is hidden by windows!). I think moltonel’s suggestion sounds like a good solution.

    Two questions:
    1. Does this mean that effects like Present Windows will work when there are no windows or only one window is shown? (Don’t know if it’s intended or a regression in the case with one window, see e.g. Bug 181898.)
    2. Does anyone actually use “Tab behind” (“Move Window to Group”) in the menu? Personally I don’t like it since it’s not clear what exactly it does (if you only have one window it won’t show anything), there’s no visual effect when you tab windows and it makes the menu more cluttered with those separators. I prefer to either use the option to autogroup similar windows, or manually group with drag and drop. However, I realize that not everyone has a middle mouse button to drag with, and it’s not as discoverable as the context menu. Hm…

    1. I agree with the comments above that the “Show Desktop” entry is a bit confusing. First, some users may wonder why it’s not always there, not knowing that there’s an option for that. Second, as others have pointed out, it makes no sense to “Show Desktop” when the desktop is already shown (and then the item disappears when the desktop actually is hidden by windows!). I think moltonel’s suggestion sounds like a good solution.

      I think most people who commented here do not realize that this is just a corner case. Who uses Alt+Tab when there are no windows? ;-)

      1. Does this mean that effects like Present Windows will work when there are no windows or only one window is shown? (Don’t know if it’s intended or a regression in the case with one window, see e.g. Bug 181898.)

      Present Windows has nothing to do with Alt+Tab and the behavior whether it gets activated is completely unrelated.

      Does anyone actually use “Tab behind” (“Move Window to Group”) in the menu?

      Nobody knows ;-)

      1. I have already used in the past Alt+Tab when there were no windows (to see what happens). Also, when akonadi crashes yet again and takes down with it all applications that depend on it, then I also end up Alt+Tabbing an empty window list. Seeing something like “Show Desktop” when there are no windows (and not showing this when there are windows) looks like buggy behavior (Windows 7 always shows the desktop in the window switcher; although I don’t like this behavior, it is more consistent than your proposal). It is not elegant at all! Elegance means (IMHO) that corner cases like this are also handled well. The best behavior is showing a text “No windows”, but if the implementation of this is too complex, then I prefer to see nothing in this case (because Alt+Tabbing an empty window list actually does nothing) rather than something strange like this (Alt+Tabbing an empty window list does not show a window called “Show Desktop” because such a window simply does not exist).

        BTW I have already used “Move window to group” in the menu. This menu entry also helps for the discoverability of the feature. Maybe get rid of the separators in the main menu: I do not see how “Move to desktop” is more related to “Minimize” than “Tab behind”, so the separators seem to be arbitrary to me and since the menu is now small enough, the separators can be omitted.

        1. Yes I am considering to change the default to always include the show desktop entry.

          1. Sorry, this should have been posted as replay here:

            I beg You don’t do that!!!
            At least I would consider annoying to have an additional entry in my window list when I am searching for a specific window.
            I use a notebook with a 15″ screen, and at that resolution I like to have almost all my windows maximized, so I have to use the alt-tab quite a lot. It would be annoying to have one entry in the window list what I don’t use at all.
            If somebody wants to see the desktop, there is a key combo for that.
            Pls don’t fix what is not broken :D
            Thanks!

          2. Ah, I see. Then the idea is acceptable (although I still don’t like it, but I guess that using QML I will be able to write a switcher myself without that entry).

          3. And then I agree that the “Show Desktop” string should not be changed to something else (also not when there are no windows).

  7. I beg You don’t do that!!!
    At least I would consider annoying to have an additional entry in my window list when I am searching for a specific window.
    I use a notebook with a 15″ screen, and at that resolution I like to have almost all my windows maximized, so I have to use the alt-tab quite a lot. It would be annoying to have one entry in the window list what I don’t use at all.
    If somebody wants to see the desktop, there is a key combo for that.
    Pls don’t fix what is not broken :D
    Thanks!

Comments are closed.