Plasma 6 build window switcher not working (org.kde.kwin version 2.0 is not installed)


I followed the instructions on Get Involved/development/Build software with kdesrc-build - KDE Community Wiki to build Plasma Desktop 6. In a new wayland session, the window switcher seems not to be working and pops an alter on the screen when I alt-tab. Looking at the journal, this seems to be the error:

Oct 11 17:00:33 wave5 kwin_wayland[3874]: kwin_tabbox: Component failed to load:  QList(file:///usr/share/plasma/look-and-feel/org.kde.breeze.desktop/contents/windowswitcher/WindowSwitcher.qml:12:1: module "org.kde.kwin" version 2.0 is not installed
                                              import org.kde.kwin 2.0 as KWin

I’m guessing I didn’t build a component, but maybe it’s something else. I’m brand new to KDE Plasma development, so I don’t have a good intuition of what I did wrong.

Hi, did you try changing the window switcher to something else?

The default one in 5 was removed or replaced with a different one in 6, Thumbnail Grid, and it doesn’t fallback to a different one if you compiled Plasma yourself, last I checked.

KWin also moved from 2.0 to 3.0 during the transition to 6, which is what’s hinting me that you’re using the old window switcher. That, and the fact it’s looking for stuff in /usr/share instead of ~/kde.

How did you build it? What does your kdesrc-build look like?

Did you follow the recommended not installing it to /usr and have it in ~/kde?

This is my kdesrc-buildrc:

# This file controls options to apply when configuring/building modules, and
# controls which modules are built in the first place.
# List of all options:

    branch-group kf6-qt6

    # Finds and includes *KDE*-based dependencies into the build.  This makes
    # it easier to ensure that you have all the modules needed, but the
    # dependencies are not very fine-grained so this can result in quite a few
    # modules being installed that you didn't need.
    include-dependencies true

    # Install directory for KDE software
    kdedir ~/kde/usr

    # Directory for downloaded source code
    source-dir ~/kde/src

    # Directory to build KDE into before installing
    # relative to source-dir by default
    build-dir ~/kde/build


    # kdesrc-build sets 2 options which is used in options like make-options or set-env
    # to help manage the number of compile jobs that happen during a build:
    # 1. num-cores, which is just the number of detected CPU cores, and can be passed
    #    to tools like make (needed for parallel build) or ninja (completely optional).
    # 2. num-cores-low-mem, which is set to largest value that appears safe for
    #    particularly heavyweight modules based on total memory, intended for
    #    modules like qtwebengine
    num-cores auto
    num-cores-low-mem 4

    # kdesrc-build can install a sample .xsession file for "Custom"
    # (or "XSession") logins,
    install-session-driver false

    # or add a environment variable-setting script to
    # ~/.config/
    install-environment-driver true

    # Stop the build process on the first failure
    stop-on-failure true

    # Use a flat folder layout under ~/kde/src and ~/kde/build
    # rather than nested directories
    directory-layout flat

    # Use Ninja as cmake generator instead of gmake
    cmake-generator Kate - Ninja

    # Build with LSP support for everything that supports it
    compile-commands-linking true
    compile-commands-export true
end global

# With base options set, the remainder of the file is used to define modules to build, in the
# desired order, and set any module-specific options.
# Modules may be grouped into sets, and this is the normal practice.
# You can include other files inline using the "include" command. We do this here
# to include files which are updated with kdesrc-build.

# Common options that should be set for some KDE modules no matter how
# kdesrc-build finds them. Do not comment these out unless you know
# what you are doing.
include /home/jfroy/kde/src/kdesrc-build/kf6-common-options-build-include

# Qt and some Qt-using middleware libraries. Uncomment if your distribution's Qt
# tools are too old but be warned that Qt take a long time to build!
#include /home/jfroy/kde/src/kdesrc-build/qt5-build-include
#include /home/jfroy/kde/src/kdesrc-build/custom-qt5-libs-build-include

# KF6 and Plasma :)
include /home/jfroy/kde/src/kdesrc-build/kf6-qt6-build-include

# To change options for modules that have already been defined, use an
# 'options' block. See kf6-common-options-build-include for an example

And yes, I built everything intro ~/kde and used the script to install the session file. I do have Plasma 5 installed from Arch on the same system.

I built with this command: kdesrc-build plasma-workspace plasma-framework plasma-integration bluedevil powerdevil plasma-nm plasma-pa plasma-thunderbolt plasma-vault plasma-firewall plasma-workspace-wallpapers kdeplasma-addons krunner milou kwin kscreen sddm-kcm plymouth-kcm breeze discover print-manager plasma-sdk kdeconnect-kde plasma-browser-integration xdg-desktop-portal-kde kde-gtk-config kgamma5 breeze-gtk drkonqi phonon flatpak-kcm kactivitymanagerd plasma-desktop systemsettings plasma-disks plasma-systemmonitor ksystemstats kinfocenter kmenuedit --include-dependencies

And yeah, the reference to /usr instead of ~/kde is indicative of files from plasma5 being used. I didn’t edit any system settings, so it may be using the plasma 5 switcher. I am not sure how to change that.

System Settings → Window Management → Window Switcher → the first combobox on the left

There is no such tab or entry.

Oh oops, it’s Task Switcher, not Window Switcher :sweat_smile:

Ah OK, “Task Switcher”, changed it to Thumbnail Grid. That did it. Thanks!