Skip to content

[windowswitchers] QML replacement for flipswitch and coverswitch

Ismael Asensio requested to merge work/iasensio/flipswitch into master

Rewrite of the flipswitch and coverswitch window switchers in QMl, using the KWin Tabbox API and PathView to layout the thumbnails.

While these 3D effects come from a different visual era (that we all love), the use of common Plasma components, following the user's theme, and lack of reflections IMHO gives the effects a more modern (breezy) look, consistent with the user's desktop and the other tabswitchers.

For a visual taste:

Flip-Switch Cover-Switch
qml_flipswitch qml_coverswitch
qml_flipswitch_2 qml_coverswitch_2

BUG:443757 BUG:184874 BUG:404802 BUG:321324 CCBUG:330529

List of previous ~~pending~~ tasks


  • Thumbnails are sometimes not fully rendered, just a transparent window. This also happens with other window switchers, but it's not as noticeable/important there

    This seems caused by me resetting kwin every time to test the changes, so it hasn't have the time to recreate the thumbnails. It shouldn't impact a lot on regular use

  • Thumbnails don't display shadows for windows that doesn't have them (as fullscreen windows). This looks bad when presented on 3D.

    Added external shadow using Kirigami.ShadowedRectangle

Lack of information about window size/aspect ratio

  • Cannot set a hightlight around the window
  • Some apparent alignment issues, where vertical windows can look misplaced due to the perspective


  • Non-smooth animation on CoverSwitch. Items from the lateral jumps from/to the central point
  • Cover Switch: make transient paths cubic instead of linear (quadratic was enough IMO)
  • There's an unwanted initial animation, when the currentIndex is first set
  • The movement direction needs to be the opposite when reverse tabbing. (Workaround bug on PathView when 3 items:

Visual refinements:

  • FlipSwitch: Windows look too close to one another
  • CoverSwich: The rotation angle can make hard to see the window content
Edited by Ismael Asensio

Merge request reports