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.