Window Switcher in QML

Yesterday I merged in the new Window Switcher Layouts implemented in QML. As before there are five available layouts but now it is easy to add further layouts. So I am waiting to see some new layouts. If a well-done layout is sent to me, I can include it in our default shipping till the artwork freeze. So use the chance to get your window switcher into our default offerings!

Thanks to the possibilities provided by QML we have now a layout configuration which shows directly a preview and not just a name as before:

For the old implementation I tried to provide a preview at least for the selected layout and it was never working properly and I removed it again in a later release. Doing the same in QML took just a few hours and I am still a QML beginner.

20 Replies to “Window Switcher in QML”

  1. When Qt announced QML I thought that would be a cheap copy of the already unnecessary XAML from Microsoft. I always programmed the GUI by hand, everybody else could use a graphical development tool.
    But stories like your blog post shows how wrong I was. Thanks for the insight.

  2. I really like the big icon edition. If you could put the window titles under those icons I’d like it even better 🙂

    1. I like it very much too, but I prefer big icons only (no window titles). So, is it possible to put there some checkbox or something like that? 🙂

      And I have one more wish, I’d like to change the size of the icons (these are really big and the small ones are so tiny…).

      But, at all I really like your work, It look so amazing and simple! Thank you for that! 🙂

      1. The idea is to no longer have checkboxes, but instead have multiple layouts being sharable through GHNS.

  3. Hi Martin,

    Are you also using QML to paint the window-switcher on the desktop, or just for the kcm configuration? If not, why don’t you?

    I personally believe that it can be achieved easily and the performance is top-notch too (I’m looking at you Scene Graph).


    1. You can answer the question yourself by thinking about what I mean with “all layouts are ported to QML” 😉

      1. Thanks Martin, the word “layout” in this case got me confused, as I thought you might be referring to laying out items in the kcm module.

        One more thing though: do you personally think that QML has the power to replace all the compositing effects anytime soon (minimize, maximize, snow, etc.), due to it’s ease of implementation and performance?


        1. do you personally think that QML has the power to replace all the compositing effects anytime soon (minimize, maximize, snow, etc.)

          Anytime soon: no as we would have to replace our complete compositor by a QML scene. That’s not feasible at the moment. Maybe we can get it co-operating with the OpenGL scene graph.

          Some effects on the other hand are planned to be replaced with a QML view. E.g. box switch, present windows, desktop grid.

          due to it’s ease of implementation and performance?

          The ease of implementation is only for UI. The bindings to C++ can be rather tricky. For our compositor I think our own performance is better as it is a scenegraph specific for compositing.

            1. quite wrong. We already have Wayland support in our compositor. Wayland is not a compositor, it is just the “server”. But every “Wayland server” implementation will most likely be a compositor. As KWin is already a compositor not much changes.

  4. I think it would be nice if this time, when there are more then the amount of items that fit the screen, when you pass the last item, it will scroll instead of drawing the cursor off screen, leaving you guessing what’s currently marked.
    It’s one of the features I really miss from 3.5.

  5. Hi,

    i wrote a tabbox in qml. How can i test it? i just copied my qml file into the location of the other tabbox qml files and added an entry in the Default.xml. Is there anything else i need to do in order to let the new tabbox appear in the system settings?

    thanks in advance.

    1. It is not yet possible to get custom layouts into the system settings dialog. You need to specify the name of the qml file in your kwinrc, the xml is no longer read.

Comments are closed.